/*
 * DEKRA Fondo Dinámico 1.2.1
 * Fondo visible en Inicio + vigilancia de footer + compatibilidad con Header Móvil.
 */

html,
body {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.dekra-fd-activo {
    background: transparent !important;
}

/* Fondo fallback: si el div no llega por caché/no-logueado, se ve igualmente */
body.dekra-fd-activo::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    pointer-events: none !important;
    z-index: 0 !important;
    opacity: var(--dekra-fd-opacity, .3);
    background-image: var(--dekra-fd-image);
    background-repeat: no-repeat;
    background-position: var(--dekra-fd-position-x, center) var(--dekra-fd-position-y, center);
    background-size: var(--dekra-fd-size, 55vw) auto;
}

body.dekra-fd-has-bg-div::before {
    display: none !important;
}

/* Fondo dinámico real */
#dekra-fondo-dinamico {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    pointer-events: none !important;
    overflow: hidden !important;
    z-index: 0 !important;
    opacity: var(--dekra-fd-opacity, .3);
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

#dekra-fondo-dinamico span {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    background-image: var(--dekra-fd-image);
    background-repeat: no-repeat;
    background-position: var(--dekra-fd-position-x, center) var(--dekra-fd-position-y, center);
    background-size: var(--dekra-fd-size, 55vw) auto;
}

/* Todo por encima del fondo */
body.dekra-fd-activo > *:not(#dekra-fondo-dinamico):not(script):not(style):not(link):not(meta) {
    position: relative;
    z-index: 2;
}

/* Espacios superiores/inferiores del tema */
body.dekra-fd-quitar-espacios {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body.dekra-fd-quitar-espacios > .skip-link,
body.dekra-fd-quitar-espacios .skip-link,
body.dekra-fd-quitar-espacios a.skip-link,
body.dekra-fd-quitar-espacios a[href="#content"],
body.dekra-fd-quitar-espacios a[href="#main"],
body.dekra-fd-quitar-espacios a[href*="#content"],
body.dekra-fd-quitar-espacios a[href*="#main"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -99999px !important;
    top: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.dekra-fd-quitar-espacios #page,
body.dekra-fd-quitar-espacios .site,
body.dekra-fd-quitar-espacios .site-content,
body.dekra-fd-quitar-espacios #content,
body.dekra-fd-quitar-espacios main,
body.dekra-fd-quitar-espacios .site-main,
body.dekra-fd-quitar-espacios .entry-content,
body.dekra-fd-quitar-espacios .page-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Inicio: no dejar fondos de wrappers tapando el fondo dinámico */
body.dekra-fd-es-inicio.dekra-fd-activo,
body.dekra-fd-es-inicio.dekra-fd-activo #page,
body.dekra-fd-es-inicio.dekra-fd-activo .site,
body.dekra-fd-es-inicio.dekra-fd-activo #content,
body.dekra-fd-es-inicio.dekra-fd-activo .site-content,
body.dekra-fd-es-inicio.dekra-fd-activo main,
body.dekra-fd-es-inicio.dekra-fd-activo .site-main,
body.dekra-fd-es-inicio.dekra-fd-activo .entry-content,
body.dekra-fd-es-inicio.dekra-fd-activo .page-content,
body.dekra-fd-es-inicio.dekra-fd-activo .elementor {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Limpieza de bloques Elementor marcada por JS */
body.dekra-fd-limpiar-bloques.dekra-fd-bloques-transparentes .dekra-fd-clean-target {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

body.dekra-fd-limpiar-bloques.dekra-fd-bloques-color .dekra-fd-clean-target {
    background: var(--dekra-fd-clean-color, #ffffff) !important;
    background-color: var(--dekra-fd-clean-color, #ffffff) !important;
    background-image: none !important;
}

body.dekra-fd-limpiar-bloques.dekra-fd-limpiar-overlays .dekra-fd-clean-overlay {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* Footer sin huecos */
body.dekra-fd-pie-sin-hueco #page,
body.dekra-fd-pie-sin-hueco .site,
body.dekra-fd-pie-sin-hueco .site-content,
body.dekra-fd-pie-sin-hueco #content,
body.dekra-fd-pie-sin-hueco main,
body.dekra-fd-pie-sin-hueco .site-main,
body.dekra-fd-pie-sin-hueco .entry-content,
body.dekra-fd-pie-sin-hueco .page-content,
body.dekra-fd-pie-sin-hueco footer,
body.dekra-fd-pie-sin-hueco .site-footer,
body.dekra-fd-pie-sin-hueco #colophon,
body.dekra-fd-pie-sin-hueco .elementor-location-footer,
body.dekra-fd-pie-sin-hueco [data-elementor-type="footer"] {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.dekra-fd-pie-sin-hueco footer > :last-child,
body.dekra-fd-pie-sin-hueco .site-footer > :last-child,
body.dekra-fd-pie-sin-hueco .elementor-location-footer > :last-child,
body.dekra-fd-pie-sin-hueco [data-elementor-type="footer"] > :last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Residuos recortados bajo footer */
body.dekra-fd-pie-sin-hueco .dekra-fd-after-footer-junk,
body.dekra-fd-ocultar-desktop .dekra-fd-hide-desktop-text {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -99999px !important;
    top: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

/* Compatibilidad con Header Móvil: proteger, pero no hacerlo visible en escritorio */
#dekra-mfm-root,
#dekra-mfm-spacer,
.dekra-mfm-bar,
.dekra-mfm-scroll {
    max-height: none !important;
    clip: auto !important;
    clip-path: none !important;
}

@media (min-width: 1025px) {
    #dekra-mfm-root,
    #dekra-mfm-spacer {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        height: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
    }
}

@media (max-width: 1024px) {
    #dekra-mfm-root {
        z-index: 2147483647 !important;
    }
}

/* El plugin de fondo no debe bloquear el scroll horizontal del menú móvil */
#dekra-mfm-root .dekra-mfm-scroll {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-inline: contain !important;
}

body.dekra-fd-capas-forzadas #wpadminbar {
    z-index: 99999 !important;
}


/* 1.2.1: DEKRA Ventanas de información nunca es residuo de footer */
.dekra-vi-modal,
.dekra-vi-modal *,
.dekra-vi-overlay,
.dekra-vi-dialog {
    max-height: none !important;
    clip: auto !important;
    clip-path: none !important;
}

.dekra-vi-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
}

.dekra-vi-modal.is-open {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
