/* 
 * ========================================================
 * Modulo: Blocca Header
 * ========================================================
 */

/* NEI TEMI A BLOCCHI (FSE) COME TWENTY TWENTY-FIVE, L'OVERFLOW NASCOSTO 
   SUI CONTENITORI GENITORI DISABILITA IL COMPORTAMENTO STICKY.
   Ripristiniamo l'overflow visible sui wrapper principali */
html, body {
    overflow-x: visible !important;
}

.wp-site-blocks {
    overflow: visible !important;
    overflow-x: visible !important;
}

/* Assicuriamoci che l'elemento parent (come <header> nei temi a blocchi) 
   diventi sticky esso stesso se contiene .bloccaheader, altrimenti 
   l'elemento .bloccaheader scivolerà via assieme al suo parent! */
header:has(.bloccaheader),
.wp-block-template-part:has(.bloccaheader),
.bloccaheader {
    position: -webkit-sticky !important; /* Per Safari */
    position: sticky !important;
    top: 0 !important;
    z-index: 99999 !important;
    width: 100% !important;
    align-self: flex-start !important; /* Essenziale se il contenitore padre usa flexbox */
}

/* Modifichiamo solo le proprietà necessarie per evitare scatti indesiderati (es. salti del top o margini) */
.bloccaheader {
    transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out, padding 0.3s ease-in-out;
}

/* Compensazione per la barra di amministrazione di WordPress quando l'utente è loggato */
body.admin-bar header:has(.bloccaheader),
body.admin-bar .wp-block-template-part:has(.bloccaheader),
body.admin-bar .bloccaheader {
    top: 32px !important;
}

/* Su mobile la admin-bar di WordPress ha altezza 46px */
@media screen and (max-width: 782px) {
    body.admin-bar header:has(.bloccaheader),
    body.admin-bar .wp-block-template-part:has(.bloccaheader),
    body.admin-bar .bloccaheader {
        top: 46px !important;
    }
}

/* Stile applicato dinamicamente via JS quando si scrolla la pagina */
/* Usiamo una classe univoca esc-is-sticky per evitare conflitti col tema (es. con twentytwentyfive) */
.bloccaheader.esc-is-sticky {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    background-color: var(--wp--preset--color--base, #ffffff); /* Fallback su bianco se variabile mancante */
}

html {
    scroll-behavior: smooth;
}
