/* ============================================================
 * LR SOOMI | Off Canvas iOS Visual Viewport Fix v1.1.6
 * Scope: solo #bso-header > Elementor Off Canvas nel header (etichetta traducibile)
 *
 * La root header ha transform e backdrop-filter (Liquid Glass),
 * che possono creare un containing block per i discendenti fixed.
 * Entrambe le proprietà sono neutralizzate SOLO durante apertura
 * /uscita dal menu, senza interferire con lo scroll normale.
 *
 * CSS indipendente da "module_header": funziona anche se il
 * controller scroll Header opzionale e' disattivato.
 * ============================================================ */

/* Specificita' deliberata: prevale sul guard del Header Controller
   anche quando il suo stylesheet e' registrato dopo questo file. */
#bso-header.lr-soomi-offcanvas-viewport-active,
#bso-header.lr-h-offcanvas-guard.lr-soomi-offcanvas-viewport-active,
#bso-header:has(.e-off-canvas[aria-hidden="false"]) {
    transform: none !important;
    -webkit-transform: none !important;
    will-change: auto !important;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    filter: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    perspective: none !important;
    /* Sospende l'interpolazione della transform nel cambio di stato.
       La normale transition del header ritorna a menu chiuso. */
    transition: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 2147483000 !important;
}

/* I vecchi top/left negativi (compensazione del margine header)
   sono stati rimossi dal CSS Site Settings migrato. */
#bso-header .elementor-widget-off-canvas .e-off-canvas {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important; /* fallback browser precedenti */
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden;
}

/* Dimensioni riferite al pannello, non al container da 20vw
   del Header. L'animazione fade di Elementor rimane intatta. */
#bso-header .e-off-canvas .e-off-canvas__main {
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    scroll-padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
}

#bso-header .e-off-canvas .e-off-canvas__content {
    min-height: 100%;
    box-sizing: border-box;
}

/* Il vecchio overflow:hidden sul container di contenuto ritagliava
   la decorazione inferiore, senza concedere alcuno scroll. */
#bso-header .e-off-canvas .lr-soomi-offcanvas-inner {
    min-height: 100%;
    height: auto;
    overflow: visible !important;
    box-sizing: border-box;
}

/* Copertura alternativa se il template precedente non e' ancora
   stato reimportato (classe LR non presente). */
#bso-header .e-off-canvas .e-off-canvas__content > .e-con:not(.lr-soomi-offcanvas-inner) {
    min-height: 100%;
    overflow: visible !important;
    box-sizing: border-box;
}


/* ============================================================
 * v1.1.6 - VISUAL VIEWPORT / CONTENUTO INTERNO
 *
 * Su Safari iOS la viewport visuale può essere più piccola della
 * layout viewport. Il pannello può apparire correttamente tagliato
 * sopra la UI Safari, mentre il contenuto Elementor mantiene una
 * geometria più alta; gli elementi position:absolute bottom:X
 * risultano allora sotto il limite visibile.
 *
 * Il JS aggiorna --lr-soomi-oc-visible-height con la
 * VisualViewport API. L'altezza viene propagata in modo coerente
 * alla catena panel > main > content > inner. L'area content
 * mantiene lo scroll per orientamento landscape/sottomenu lunghi.
 * ============================================================ */
@media (max-width: 1024px) {
    #bso-header .elementor-widget-off-canvas .e-off-canvas {
        height: var(--lr-soomi-oc-visible-height, 100dvh) !important;
        min-height: 0 !important;
        max-height: var(--lr-soomi-oc-visible-height, 100dvh) !important;
        box-sizing: border-box !important;
    }

    #bso-header .e-off-canvas .e-off-canvas__main {
        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    #bso-header .e-off-canvas .e-off-canvas__content {
        position: relative;
        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-y: contain;
        box-sizing: border-box !important;
    }

    #bso-header .e-off-canvas .lr-soomi-offcanvas-inner,
    #bso-header .e-off-canvas .e-off-canvas__content > .e-con:not(.lr-soomi-offcanvas-inner) {
        position: relative;
        height: 100% !important;
        min-height: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }
}
