/* ==========================================================================
   Elementor Mega Menu Pro – megamenu.css
   ========================================================================== */

/* -------------------------------------------------------------------------
   1. Variabili CSS
   ------------------------------------------------------------------------- */
:root {
    --emm-z-header    : 9999;
    --emm-z-panel     : 9998;
    --emm-z-overlay   : 9997;
    --emm-easing      : cubic-bezier(0.22, 1, 0.36, 1);
    --emm-duration    : 550ms;
    --emm-header-h    : 80px;
    --emm-panel-slide : 18px;  /* offset verticale per animazione slide */
    --emm-topbar-h    : 44px;  /* altezza topbar secondaria (WPML + ricerca) */
}


@media (max-width: 1024px) { 
:root {
    --emm-header-h    : 75px;
    --emm-topbar-h    : 0px;   /* topbar nascosta su mobile */
}

}

/* Permette scroll interno del menu mobile */
.emm-header__nav.mobile-open {
    overflow-y: auto;
    max-height: 100vh;
}


    .admin-bar  .emm-header__nav.mobile-open {
		margin-top:32px;
	}

	
	@media (max-width: 782px) {
    .admin-bar  .emm-header__nav.mobile-open {
		margin-top:44px;
	}
	}


/* Evita fluttuazioni quando scroll è bloccato */
html {
    transition: overflow 0.3s ease;
}

/* -------------------------------------------------------------------------
   2. Wrapper
   ------------------------------------------------------------------------- */
.emm-wrapper {
    position: relative;
	max-width:100%;
}

/* -------------------------------------------------------------------------
   3. Header
   ------------------------------------------------------------------------- */
.emm-header {
    position   : relative;
    width      : 100%;
    height     : var(--emm-header-h);
    z-index    : var(--emm-z-header);
	padding-top : var(--spacing-M);
    /* Apertura: transizione normale */
    transition : background var(--emm-duration) var(--emm-easing),
                 box-shadow var(--emm-duration) var(--emm-easing);
}

/* Sticky – parte sotto la topbar secondaria, sale a top:0 quando scrolled/mega-open */
.emm-header--sticky {
    position   : fixed;
    top        : var(--emm-topbar-h);
    left       : 0;
    right      : 0;
    transition : top var(--emm-duration) var(--emm-easing),
                 background var(--emm-duration) var(--emm-easing),
                 box-shadow var(--emm-duration) var(--emm-easing);
}
.emm-header--sticky.is-scrolled,
.emm-header--sticky.mega-open {
    top : 0;
}

/* Trasparente */
.emm-header--transparent {
    background : transparent;
}

/* Solido di default */
.emm-header--solid {
    background : #fff;
    box-shadow : 0 2px 12px rgba(0,0,0,.1);
}

/* Stato: scrolled */
.emm-header.is-scrolled {
    background : #fff;
   /* box-shadow : 0 2px 20px rgba(0,0,0,.12);*/
}

/* Mega-open (drawer mobile / fullscreen aperti): nessun effetto sullo sfondo
   dell'header — è il pannello stesso (opaco, a tutta pagina) a coprirlo
   interamente, quindi qualunque sfumatura qui sarebbe invisibile e superflua. */

/* Logo e link: transition sync con il pannello */
.emm-logo,
.emm-nav > .emm-item > .emm-link,
.emm-nav-right a,
.emm-logo-link--text {
    transition-duration: calc(var(--emm-duration) * 0.8);
    transition-timing-function: var(--emm-easing);
}

/* -------------------------------------------------------------------------
   4. Header inner  –  logo | nav principale | nav destra
   ------------------------------------------------------------------------- */
.emm-header__inner {
    display     : grid;
    /* logo fisso | nav principale flessibile | nav destra fisso */
    grid-template-columns : auto 1fr auto;
    align-items : center;
    height      : 100%;
    margin      : 0 auto;
    padding     : 0 var(--fluid-xxl);
	padding-right: 35px;
    gap         : 0;
	margin-left:0;
	margin-right:0;
}


/* Su mobile diventa: logo | spacer | burger */
@media (max-width: 1399px) {
    .emm-header__inner {
        padding: 0 var(--fluid-xxl);
		padding-right: 35px;
    }
}

/* Su mobile diventa: logo | spacer | burger */
@media (max-width: 1024px) {
    
		.emm-header {
		padding-top : 0;
		}
	
    .emm-header__inner {
        grid-template-columns : auto 1fr auto;
        padding: 0 30px;
		padding-bottom: 0;
    }
}

/* Intestazione del pannello mobile (logo scuro + chiudi): SOLO su mobile.
   Di default nascosta — la regola che la mostra è dentro il media query mobile. */
.emm-nav-panel-header {
    display : none;
}

/* -------------------------------------------------------------------------
   5. Logo
   ------------------------------------------------------------------------- */
/* display:grid qui (non su .emm-header__logo): questo è il VERO genitore
   diretto delle due immagini logo — vedi PHP: .emm-logo-link > img.light + img.dark */
.emm-logo-link {
    display         : grid;
    align-items     : center;
    text-decoration : none;
    flex-shrink     : 0;
}

.emm-logo {
    display    : block;
    width      : 140px;
    height     : auto;
    transition : opacity var(--emm-duration) var(--emm-easing),
                 transform var(--emm-duration) var(--emm-easing);
}

/* Entrambe le varianti (chiara/scura) occupano la STESSA cella di griglia
   e vengono centrate individualmente al suo interno: qualunque sia la loro
   proporzione reale, il loro centro verticale coincide sempre — niente più
   scatti quando l'una sostituisce l'altra, e niente più raddoppio di
   larghezza (prima si affiancavano invece di sovrapporsi). */
.emm-logo--light,
.emm-logo--dark {
    grid-area   : 1 / 1;
    align-self  : center;
    justify-self: start;
}
.emm-logo--light {
    opacity  : 1;
}
.emm-logo--dark {
    opacity  : 0;
    pointer-events: none;
}

.emm-header__logo {
    position : relative;
}

/* Scroll reale della pagina: swap logo (chiaro→scuro). Non più legato a
   mega-open: il pannello (mobile/fullscreen) copre già l'header per intero. */
.emm-header.is-scrolled .emm-logo--light {
    opacity : 0;
}
.emm-header.is-scrolled .emm-logo--dark {
    opacity        : 1;
    pointer-events : auto;
}

/* Logo text fallback */
.emm-logo-link--text {
    font-size      : 22px;
    font-weight    : 700;
    color          : #fff;
    text-decoration: none;
    transition     : color var(--emm-duration) var(--emm-easing);
}
.emm-header.is-scrolled .emm-logo-link--text
{
    color : #111;
}

/* -------------------------------------------------------------------------
   6. Nav – struttura
   ------------------------------------------------------------------------- */
.emm-nav-wrap {
    display         : flex;
    justify-content : flex-start;   /* nav principale parte dal logo */
    padding-left    : 10px;
}

.emm-nav {
    display     : flex;
    align-items : center;
    list-style  : none;
    margin      : 0;
    padding     : 0;
}

.emm-item {
    position    : relative;
    list-style  : none;
    height      : 100%;
    display     : flex;
    align-items : center;
}

.emm-item:hover {
	border-radius: 5px;
	background: rgba(0, 0, 0, 0.15);
}

/*.emm-item--mega.is-open {
	border-radius: 5px;
	background: rgba(0, 0, 0, 0.15);
}*/

/* -------------------------------------------------------------------------
   7. Link di primo livello
   ------------------------------------------------------------------------- */
.emm-link .emm-link__label {
    display         : flex;
    align-items     : center;
    gap             : 6px;
    padding         : 0;
    height          : 50px;
    text-decoration : none;
    font-size       : var(--cta-font-size) !important;
    font-weight     : 600;
    letter-spacing  : -0.19px !important;
    color           : #fff;
    transition      : color var(--emm-duration) var(--emm-easing);
    white-space     : nowrap;
    position        : relative;
}

/* Link su header scrolled (scroll reale della pagina) */
.emm-header.is-scrolled .emm-nav > .emm-item > .emm-link {
    color : #111;
}

.emm-link:hover
 {
    color :#fff;
}

.emm-item.is-open > .emm-link {
    color : #A26810 !important;
}

/* Indicatore sotto (linea hover) */
/*.emm-link--depth-0::after {
    content    : '';
    position   : absolute;
    bottom     : 34px;
    left       : 20px;
    right      : 20px;
    height     : 2px;
    background : currentColor;
    transform  : scaleX(0);
    transform-origin: center;
    transition : transform 300ms var(--emm-easing);
}*/
.emm-link--depth-0:hover::after,
.emm-item.is-open > .emm-link--depth-0::after {
    transform : scaleX(1);
}

/* -------------------------------------------------------------------------
   8. Arrow (chevron)
   ------------------------------------------------------------------------- */
.emm-link__arrow {
    display    : inline-flex;
	justify-content: center;
    align-items: center;
    width      : 24px;
    height     : 24px;
    transition : transform var(--emm-duration) var(--emm-easing);
}


.emm-item.is-open > .emm-link .emm-link__arrow {
    transform : rotate(180deg);
}


@media (min-width: 1025px) {
	.emm-link__arrow {
		 display : none;
	}
}

/* -------------------------------------------------------------------------
   9. Pannello Mega Menu
   ------------------------------------------------------------------------- */
.emm-panel {
    position       : fixed;
    /* Sotto la topbar quando è visibile (in cima alla pagina), sotto il solo header quando scrolled */
    top            : calc(var(--emm-topbar-h) + var(--emm-header-h));
    left           : 0;
    right          : 0;
    background     : #fff;
    z-index        : var(--emm-z-panel);
    overflow       : hidden;
    will-change    : opacity, transform;

    /* Stato chiuso – SOLO opacity + transform, niente visibility delay */
    pointer-events : none;
    opacity        : 0;
    transform      : translateY(calc(-1 * var(--emm-panel-slide)));
    transition     : opacity   var(--emm-duration) var(--emm-easing),
                     transform var(--emm-duration) var(--emm-easing);
	border-radius: var(--border-radius-M);
}

.admin-bar .emm-panel {
    top: calc(var(--emm-topbar-h) + var(--emm-header-h) + 32px);
}

@media (max-width: 782px) {
    .admin-bar .emm-panel {
        top: calc(var(--emm-topbar-h) + var(--emm-header-h) + 46px);
    }
}

/* Header scrolled: la topbar è nascosta, il pannello si allinea subito sotto l'header */
.emm-header.is-scrolled .emm-panel {
    top : var(--emm-header-h);
}

/* Aperto */
.emm-item.is-open > .emm-panel {
    opacity        : 1;
    transform      : translateY(0);
    pointer-events : auto;
    /* stessa transition – nessun override necessario */
}

/* Varianti animazione */
[data-animation="fade"] .emm-panel {
    transform : translateY(0);
}

[data-animation="slide-down"] .emm-panel {
    opacity   : 1;
    transform : translateY(-100%);
}
[data-animation="slide-down"] .emm-item.is-open > .emm-panel {
    transform : translateY(0);
}

/* Full-width (default) */
.emm-panel--full-width {
    left  : 0;
    right : 0;
}

/* Contained */
.emm-panel--contained {
    width          : 100%;
    max-width      : 1550px;
    left           : 50%;
    transform-origin: top center;
    transform      : translateX(-50%) translateY(calc(-1 * var(--emm-panel-slide)));
}
.emm-item.is-open > .emm-panel--contained {
    transform : translateX(-50%) translateY(0);
}

/* Separatore visivo in cima al pannello */
/*.emm-panel::before {
    content    : '';
    display    : block;
    height     : 1px;
    background : #e8e8e8;
}*/


/* Ombra in fondo al pannello */
/*.emm-panel::after {
    content    : '';
    position   : absolute;
    bottom     : 0;
    left       : 0;
    right      : 0;
    height     : 4px;
    background : linear-gradient(to bottom, rgba(0,0,0,.05), transparent);
}*/

.emm-panel__inner {
    width:100%;
    margin    : 0 auto;
    padding   : 40px;
	padding-left: var(--fluid-xxl) !important;
	padding-right: var(--fluid-xxl) !important;
}

/* -------------------------------------------------------------------------
   10. Template Elementor dentro il pannello
   ------------------------------------------------------------------------- */
.emm-panel__template {
    width : 100%;
}

/* Reset Elementor dentro il pannello */
.emm-panel .elementor-section-wrap,
.emm-panel .elementor-section {
    margin-bottom : 0 !important;
}

/* -------------------------------------------------------------------------
   11. Loader (lazy loading template)
   ------------------------------------------------------------------------- */
.emm-panel__loader {
    display         : flex;
    align-items     : center;
    justify-content : center;
    gap             : 6px;
    padding         : 40px;
}
.emm-panel__loader span {
    width            : 8px;
    height           : 8px;
    border-radius    : 50%;
    background       : #ccc;
    animation        : emm-pulse 1.2s ease-in-out infinite;
}
.emm-panel__loader span:nth-child(2) { animation-delay: 0.2s; }
.emm-panel__loader span:nth-child(3) { animation-delay: 0.4s; }

@keyframes emm-pulse {
    0%, 80%, 100% { transform: scale(0.6); opacity: .4; }
    40%           { transform: scale(1);   opacity: 1;  }
}

/* -------------------------------------------------------------------------
   12. Overlay
   ------------------------------------------------------------------------- */
.emm-overlay {
    position       : fixed;
    inset          : 0;
  /*  top            : calc(var(--emm-topbar-h) + var(--emm-header-h));*/
    background     : rgba(106, 106, 106, 0.25);
    z-index        : var(--emm-z-overlay);
    opacity        : 0;
    pointer-events : none;
    transition     : opacity var(--emm-duration) var(--emm-easing);
    backdrop-filter: blur(1px);
}
.emm-header.is-scrolled ~ .emm-overlay {
    top : var(--emm-header-h);
}
.emm-overlay.is-visible {
    opacity        : 1;
    pointer-events : auto;
}


/* -------------------------------------------------------------------------
   13. Dropdown classico (no mega)
   Il dropdown si apre sotto la voce padre con sfondo bianco proprio.
   L'header NON cambia background — rimane trasparente (o scrolled).
   ------------------------------------------------------------------------- */
.emm-dropdown {
    position       : absolute;
    /* Si stacca dal basso dell'header, non aderisce ad esso */
    top            : calc(100% + 0px);
    left           : 0;
    min-width      : 220px;
    background     : #fff;
    border-radius  : 0 0 4px 4px;
    box-shadow     : 0 8px 32px rgba(0,0,0,.13);
    list-style     : none;
    margin         : 0;
    padding        : 8px 0;
    /* Z-index sotto il mega panel ma sopra il contenuto */
    z-index        : calc(var(--emm-z-panel) - 1);

    /* Stato chiuso */
    opacity        : 0;
    pointer-events : none;
}

/* Linea colorata in cima al dropdown */
.emm-dropdown::before {
    content    : '';
    display    : block;
    position   : absolute;
    top        : 0; left: 0; right: 0;
    height     : 2px;
    background : #111;
    opacity    : 0.08;
}



/* Voci del dropdown */
.emm-dropdown .emm-link {
    display      : flex;
    height       : auto;
    padding      : 11px 22px;
    color        : #222;
    font-size    : 14px;
    font-weight  : 400;
    letter-spacing: 0;
    white-space  : nowrap;
    border-bottom: 1px solid transparent;
}
.emm-dropdown .emm-link:hover {
    color      : #0070f3;
    background : #f7f9ff;
}
/* Nessuna linea decorativa sui link di secondo livello */
.emm-dropdown .emm-link::after { display: none !important; }

/* Dropdown annidato (terzo livello) */
.emm-dropdown .emm-dropdown {
    top  : 0;
    left : 100%;
    border-radius: 0 4px 4px 4px;
}

/* Nascosto su mobile – il tap non deve mostrarlo via :hover CSS */
@media (max-width: 1024px) {
    .emm-dropdown {
        display : none !important;
    }
	

    /* ACCORDION: il dropdown si apre espandibile sotto la voce padre */
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-dropdown {
        display        : block !important;
        position       : static !important;
        opacity        : 1 !important;
        transform      : none !important;
        box-shadow     : none !important;
        border         : none !important;
        border-radius  : 0 !important;
        background     : #f8f8f8 !important;
        padding        : 0 !important;
        max-height     : 0;
        overflow       : hidden;
        pointer-events : none;
    }
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-dropdown::before {
        display : none !important;
    }
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-item.is-open > .emm-dropdown {
        max-height     : 600px;
        pointer-events : auto;
    }
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-dropdown .emm-link {
        padding      : 13px 36px !important;
        font-size    : 14px !important;
        color        : #444 !important;
        border-bottom: 1px solid #efefef !important;
        white-space  : normal !important;
        min-width    : 0;
    }
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-dropdown .emm-link:hover {
        color      : #0070f3 !important;
        background : #f0f0f0 !important;
    }

    /* SLIDE PANEL: dropdown sempre nascosto — il contenuto è nel pannello slide */
    .emm-wrapper[data-mobile-style="slide-panel"] .emm-dropdown {
        display : none !important;
    }
}



/* -------------------------------------------------------------------------
   14. Topbar Secondaria (WPML + menu utility + ricerca) — solo desktop
   ------------------------------------------------------------------------- */
.emm-topbar {
    position       : fixed;
    top            : 0;
    left           : 0;
    right          : 0;
    height         : var(--emm-topbar-h);
    z-index        : calc(var(--emm-z-header) + 1);
    display        : flex;
    align-items    : center;
    overflow       : hidden;
    transition     : transform 350ms var(--emm-easing), opacity 300ms var(--emm-easing);
}
.emm-topbar.is-hidden {
    transform      : translateY(-100%);
    opacity        : 0;
    pointer-events : none;
}

/* Header non sticky: la topbar segue il flusso normale del documento */
.emm-wrapper[data-sticky="0"] .emm-topbar {
    position : relative;
}

/* Header non sticky: anche il pannello mega menu segue il flusso normale
   invece di restare "fixed" rispetto al viewport (che lo farebbe posizionare
   male non appena si scrolla via dall'header). Va ancorato all'header intero,
   non alla singola voce (.emm-item) — per questo disattiviamo anche il
   position:relative di .emm-item, che altrimenti farebbe da containing block
   al posto dell'header, restringendo il pannello alla larghezza della voce. */
.emm-wrapper[data-sticky="0"] .emm-item {
    position : static;
}
.emm-wrapper[data-sticky="0"] .emm-panel {
    position : absolute;
    top      : 100%;
	margin-top: 48px;
}

/* Header non sticky: anche il pannello ricerca segue il flusso normale
   invece di restare "fixed" rispetto al viewport. È già fratello diretto
   di .emm-header dentro .emm-wrapper, quindi in flusso normale si
   posiziona automaticamente subito sotto l'header, senza bisogno di calcoli. */
.emm-wrapper[data-sticky="0"] .emm-search-panel {
    position : relative;
    top      : auto;
	margin-top: 48px;
}

@media (max-width: 1024px) {
	.emm-wrapper[data-sticky="0"] .emm-search-panel {
	margin-top: 0px;
	}
}

.emm-topbar__inner {
    display     : flex;
    align-items : center;
    justify-content : flex-end;
    gap         : 22px;
    width       : 100%;
    margin      : 0 auto;
    padding     : 0 var(--spacing-XXL);
}
@media (max-width: 1399px) {
    .emm-topbar__inner { padding: 0 60px; }
}

/* Menu utility nella topbar (es. Bandi e gare, Contatti) */
.emm-nav-top-wrap { display: flex; align-items: center; }
.emm-nav-top {
    display     : flex;
    align-items : center;
    list-style  : none;
    margin      : 0;
    padding     : 0;
    gap         : 4px;
}
.emm-nav-top li { list-style: none; }
.emm-nav-top a {
    display         : flex;
    align-items     : center;
    padding         : 6px 12px;
    font-size       : 12px;
    font-weight     : 600;
    letter-spacing  : 0.03em;
    text-decoration : none;
    color           : inherit;
    white-space     : nowrap;
    transition      : color var(--emm-duration) var(--emm-easing);
    border-radius   : 2px;
}
.emm-nav-top a:hover { opacity: 0.7; }

/* Ultima voce del menu topbar come bottone (opzionale) */
.emm-header--last-btn ~ .emm-topbar .emm-nav-top li:last-child a,
.emm-header--last-btn   .emm-nav-top li:last-child a {
    border        : 1px solid currentColor;
    padding       : 6px 16px;
    border-radius : 2px;
}

/* WPML dentro la topbar: eredita colore dal contenitore */
.emm-topbar .emm-wpml-wrap { display: flex; align-items: center; }
.emm-topbar .emm-wpml__item a,
.emm-topbar .emm-wpml__current { color: inherit; }

/* -------------------------------------------------------------------------
   14b. Icona Ricerca (topbar desktop + azioni mobile)
   ------------------------------------------------------------------------- */
.emm-search-toggle {
    display         : flex !important;
    align-items     : center;
    gap             : 8px;
    background      : transparent !important;
    background-image: none !important;
    border          : none !important;
    box-shadow      : none !important;
    border-radius   : 0 !important;
    text-transform  : none !important;
    cursor          : pointer;
    padding         : 6px 4px !important;
    margin          : 0 !important;
    color           : inherit !important;
    font-family     : inherit !important;
    font-size       : 16px !important;
    font-weight     : 600 !important;
    line-height     : normal !important;
    letter-spacing: -0.16px;
    white-space     : nowrap;
    text-decoration : none !important;
    transition      : color var(--emm-duration) var(--emm-easing), opacity 200ms ease;
}
.emm-search-toggle:hover,
.emm-search-toggle:focus,
.emm-search-toggle:active {
    background : transparent !important;
    color      : inherit !important;
    opacity    : 0.7;
}

.emm-search-toggle__icon {
    position    : relative;
    display     : inline-block;
    width       : 16px;
    height      : 16px;
    flex-shrink : 0;
}


/* Icona mobile: solo icona, niente label, colore eredita dall'header.
   Nascosta su desktop (!important vince su eventuali reset globali del tema) */
.emm-search-toggle--mobile {
    display         : none !important;
    width           : 25px !important;
    height          : 25px !important;
    justify-content : center;
    padding         : 0 !important;
    color           : #fff !important;
}
.emm-header.is-scrolled .emm-search-toggle--mobile {
    color : #111 !important;
}
.emm-search-toggle--mobile .emm-search-toggle__icon { width: 20px; height: 20px; }
.emm-search-toggle--mobile .emm-search-toggle__icon::before { width: 13px; height: 13px; border-width: 2px; }
.emm-search-toggle--mobile .emm-search-toggle__icon::after  { width: 7px; height: 2px; }

/* -------------------------------------------------------------------------
   14c. Pannello Ricerca (slide-down)
   ------------------------------------------------------------------------- */
.emm-search-panel {
    position       : fixed;
    top            : calc(var(--emm-topbar-h) + var(--emm-header-h));
    left           : 0;
    right          : 0;
    background     : #fff;
    z-index        : var(--emm-z-panel);
    overflow       : hidden;
    max-height     : 0;
    opacity        : 0;
    pointer-events : none;
    box-shadow     : 0 12px 30px rgba(0,0,0,.1);
    transition     : max-height 400ms var(--emm-easing), opacity 300ms var(--emm-easing);
}

.admin-bar .emm-search-panel{
    top: calc(var(--emm-topbar-h) + var(--emm-header-h) + 32px);
}

@media (max-width: 782px) {
    .admin-bar .emm-search-panel {
        top: calc(var(--emm-topbar-h) + var(--emm-header-h) + 46px);
    }
}


.emm-header.is-scrolled ~ .emm-search-panel {
    top : var(--emm-header-h);
}
.emm-search-panel.is-open {
    max-height     : 140px;
    opacity        : 1;
    pointer-events : auto;
}
.emm-search-panel__inner {
    display     : flex;
    align-items : center;
    gap         : 16px;
    max-width   : 900px;
    margin      : 0 auto;
    padding     : 32px 40px;
}
.emm-search-form {
    flex        : 1;
    display     : flex;
    align-items : center;
    gap         : 12px;
    border-bottom: 2px solid #111;
    padding-bottom: 8px;
}
.emm-search-form__input {
    flex          : 1;
    border        : none !important;
    box-shadow    : none !important;
    outline       : none;
    background    : transparent !important;
    padding       : 0 !important;
    margin        : 0 !important;
    font-size     : 20px;
    font-family   : inherit;
    color         : #111;
}
.emm-search-form__submit {
    display         : flex !important;
    align-items     : center;
    justify-content : center;
    width           : 32px;
    height          : 32px;
    border          : none !important;
    background      : transparent !important;
    box-shadow      : none !important;
    border-radius   : 0 !important;
    padding         : 0 !important;
    margin          : 0 !important;
    cursor          : pointer;
    color           : #111 !important;
    flex-shrink     : 0;
}
.emm-search-form__submit-icon { position: relative; display: block; width: 18px; height: 18px; }
.emm-search-form__submit-icon::before {
    content: ''; position: absolute; top: 0; left: 0;
    width: 12px; height: 12px; border: 2px solid currentColor; border-radius: 50%;
}
.emm-search-form__submit-icon::after {
    content: ''; position: absolute; bottom: 0; right: 0;
    width: 7px; height: 2px; background: currentColor;
    transform: rotate(45deg); transform-origin: right center;
}
.emm-search-panel__close {
    display         : flex !important;
    align-items     : center;
    justify-content : center;
    width           : 32px;
    height          : 32px;
    border          : none !important;
    background      : transparent !important;
    box-shadow      : none !important;
    border-radius   : 0 !important;
    padding         : 0 !important;
    margin          : 0 !important;
    cursor          : pointer;
    font-size       : 22px;
    line-height     : 1;
    color           : #111 !important;
    flex-shrink     : 0;
}
.emm-search-panel__close:hover { opacity: 0.6; }

@media (max-width: 767px) {
    .emm-search-panel__inner { padding: 24px 24px; flex-wrap: wrap; }
    .emm-search-form__input  { font-size: 16px; }
}

/* -------------------------------------------------------------------------
   14d. Azioni header (ricerca mobile + hamburger fullscreen + hamburger mobile)
   ------------------------------------------------------------------------- */
.emm-header__actions {
    display     : flex;
    align-items : center;
    gap         : var(--spacing-L);
    justify-content: flex-end;
    grid-column : 3;
}

/* -------------------------------------------------------------------------
   15. Burger (mobile)
   ------------------------------------------------------------------------- */
.emm-burger {
    display         : none;
    flex-direction  : column;
    justify-content : center;
    align-items     : center;
    gap             : 7px;
    width           : 25px;
    height          : 25px;
    background      : transparent !important;
    border          : none !important;
    box-shadow      : none !important;
    border-radius   : 0 !important;
    padding         : 0 !important;
    margin          : 0 !important;
    cursor          : pointer;
    grid-column     : 3;
}
.emm-burger span {
    display          : block;
    width            : 25px;
    height           : 1px;
    background       : #fff;
    border-radius    : 0;
	stroke-width: 1px;
    stroke: var(--White, #FFF);
    transition       : transform 300ms var(--emm-easing),
                       opacity   300ms var(--emm-easing),
                       background 300ms var(--emm-easing);
}
.emm-header.is-scrolled .emm-burger span {
    background : #000 !important;
}
/* Burger → X */
.emm-burger.is-open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.emm-burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.emm-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =========================================================================
   15. MOBILE – Base (comune a entrambe le modalità)
   ========================================================================= */
@media (max-width: 1024px) {
	

    .emm-burger        { display: flex; }
    .emm-topbar        { display: none; } /* topbar secondaria non mostrata su mobile */
    .emm-search-toggle--mobile { display: flex !important; } /* icona ricerca accanto all'hamburger */

    /* Quando il drawer mobile è aperto: in alto solo logo + chiudi (X).
       Nascondiamo icona ricerca ed eventuale hamburger fullscreen. */
    .emm-header.mega-open .emm-search-toggle--mobile,
    .emm-header.mega-open .emm-fs-burger {
        display : none !important;
    }

    /* Nav off-canvas – copre l'INTERO viewport (anche l'area dell'header
       reale): il pannello ha una propria intestazione (logo scuro + chiudi),
       indipendente dall'header sottostante che riappare invariato alla chiusura */
    .emm-header__nav {
        position       : fixed;
        top            : 0;
        left           : 0;
        right          : 0;
        bottom         : 0;
        background     : #fff;
        z-index        : var(--emm-z-panel);
        overflow       : hidden;
        padding        : 0;
        display        : flex;
        flex-direction : column;
        /* stato chiuso: nascosto ma in DOM */
        pointer-events : none;
    }

    /* Nav lista */
    .emm-nav-wrap {
        flex       : 1;
		height: 75%;
        overflow-y : auto;
        padding    : var(--spacing-L);
        position   : relative;
        transition : transform var(--emm-duration) var(--emm-easing);
    }

    /* Intestazione del pannello mobile: logo scuro + chiudi.
       Stessa altezza/padding orizzontale dell'header reale, per continuità visiva. */
    .emm-nav-panel-header {
        display         : flex;
        align-items     : center;
        justify-content : space-between;
        flex-shrink     : 0;
        height          : var(--emm-header-h);
        padding         : 0 30px;
    }
    .emm-nav-panel-header__logo {
        display         : flex;
        align-items     : center;
        text-decoration : none;
    }
	
	.emm-link .emm-link__label {
	 font-size: 21px !important;
	font-style: normal;
	font-weight: 600;
	line-height: 25px; /* 119.048% */
	letter-spacing: -0.42px;
	color: var(--fnm-color-blue);
	}
    .emm-nav-panel-header__logo img {
        display : block;
        height  : auto;
    }
    .emm-nav-panel-header__text {
        font-size   : 22px;
        font-weight : 700;
        color       : #111;
    }

    /* Pulsante chiudi: X pulita e statica (non è un burger che si anima) */
    .emm-nav-panel-close {
        display         : flex;
        align-items     : center;
        justify-content : center;
        width           : 40px;
        height          : 40px;
        background      : transparent !important;
        border          : none !important;
        box-shadow      : none !important;
        border-radius   : 0 !important;
        padding         : 0 !important;
        margin          : 0 !important;
        cursor          : pointer;
        position        : relative;
        flex-shrink     : 0;
    }
    .emm-nav-panel-close span {
        position   : absolute;
        top        : 50%;
        left       : 50%;
        width      : 22px;
        height     : 1.5px;
        background : #111;
    }
    .emm-nav-panel-close span:nth-child(1) { transform : translate(-50%, -50%) rotate(45deg); }
    .emm-nav-panel-close span:nth-child(2) { transform : translate(-50%, -50%) rotate(-45deg); }
    .emm-nav {
        flex-direction : column;
        align-items    : stretch;
        height         : auto;
    }
    .emm-item {
        height         : auto;
        flex-direction : column;
        align-items    : stretch;
        min-width      : 0; /* permette allo item di restringersi sotto la sua larghezza intrinseca */
    }
    .emm-link {
        display         : flex;
        align-items     : center;
        color           : #111 !important;
        padding         : 15px 24px;
        height          : auto;
        justify-content : space-between;
        min-width       : 0;
    }
    /* FIX: .emm-link__label ha un colore bianco esplicito (per il desktop su
       sfondo blu) che NON eredita dal genitore .emm-link — va sovrascritto
       esplicitamente qui, altrimenti il testo resta invisibile su sfondo bianco */
    .emm-link .emm-link__label {
        /* FIX overflow: su schermi stretti (es. 360px) le voci più lunghe
           (es. "CSR-Sostenibilità") con nowrap ereditato dal desktop
           spingevano l'intero pannello oltre il viewport. Ora vanno a capo. */
        white-space : normal !important;
        min-width   : 0;
        flex        : 1;
    }
    .emm-link--depth-0::after { display: none; }

    /* Arrow mobile: sempre visibile e punta a destra */
    .emm-link__arrow {
        opacity   : 1 !important;
    }

    /* Pannello desktop su mobile:
       NON usiamo display:none per non bloccare il clone JS.
       Lo nascondiamo con max-height + overflow. */
    .emm-panel {
        position       : relative;
        top            : auto; left: auto; right: auto;
        transform      : none !important;
        pointer-events : none;
        transform: translateY(-10px);
        opacity: 0;
        transition:
            transform 500ms cubic-bezier(0.22, 1, 0.36, 1),
            opacity 400ms ease,
            max-height 500ms cubic-bezier(0.22, 1, 0.36, 1);
        background     : transparent;
        box-shadow     : none;
    }
    .emm-panel::before,
    .emm-panel::after { display: none; }
    .emm-panel__inner { padding: 0 24px 16px; }
	


    .emm-item.is-open > .emm-panel {
        transform: translateY(0);
        opacity: 0;
    }
}

/* =========================================================================
   15a. ACCORDION – nav con fade, sottovoci espansione verticale
   ========================================================================= */

/* Nav: fade in dal basso */
@media (max-width: 1024px) {
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-header__nav {
        opacity   : 0;
        transform : translateY(-10px);
        transition: opacity  var(--emm-duration) var(--emm-easing),
                    transform var(--emm-duration) var(--emm-easing);
    }
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-header__nav.mobile-open {
        opacity        : 1;
        transform      : translateY(0);
        pointer-events : auto;
    }

    /* Pannello accordion: apre verso il basso con fade */
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-item.is-open > .emm-panel {
        pointer-events : auto;
        max-height     : 800px;
    }

    /* Arrow ruota verso il basso quando aperto */
    .emm-wrapper:not([data-mobile-style="slide-panel"]) .emm-item.is-open > .emm-link .emm-link__arrow {
        transform : rotate(90deg) !important;
    }
}

/* =========================================================================
   15b. SLIDE PANEL – nav da sinistra, sub-panel da destra
   ========================================================================= */

/* Nav: entra da SINISTRA verso destra */
@media (max-width: 1024px) {
    .emm-wrapper[data-mobile-style="slide-panel"] .emm-header__nav {
        transform  : translateX(100%);
        transition : transform var(--emm-duration) var(--emm-easing);
    }
    .emm-wrapper[data-mobile-style="slide-panel"] .emm-header__nav.mobile-open {
        transform      : translateX(0);
        pointer-events : auto;
    }

    /* Pannello originale: lo teniamo in DOM (no display:none!)
       ma visivamente nascosto — il clone nel slide panel è quello che appare.
       IMPORTANTE: specificità 0,2,0 – non sovrascrive il reset del clone. */
    .emm-wrapper[data-mobile-style="slide-panel"] .emm-panel {
        max-height     : 0 !important;
        overflow       : hidden !important;
        pointer-events : none !important;
    }
}

/* Contenitore slide panels – sovrapposto al nav */
.emm-slide-container {
    display        : none;
    position       : absolute;
    inset          : 0;
    overflow       : hidden;
    pointer-events : none;
}

@media (max-width: 1024px) {
    .emm-wrapper[data-mobile-style="slide-panel"] .emm-slide-container {
        display : block;
    }
}

/* Singolo pannello slide – parte fuori schermo a DESTRA */
.emm-slide-panel {
    position       : absolute;
    inset          : 0;
    background     : #fff;
    display        : flex;
    flex-direction : column;
    overflow       : hidden;
    pointer-events : none;
    transform      : translateX(100%);
    transition     : transform var(--emm-duration) var(--emm-easing);
}

/* Attivo: entra da destra verso sinistra */
.emm-slide-panel--active {
    transform      : translateX(0);
    pointer-events : auto;
}

/* Pannello che lascia spazio al figlio: esce a sinistra */
.emm-slide-panel--exit {
    transform : translateX(-30%);
}

/* Chiusura: torna a destra */
.emm-slide-panel--closing {
    transform      : translateX(100%);
    pointer-events : none;
}

/* Header fisso del pannello slide (back + titolo) */
.emm-slide-header {
    display         : flex;
    align-items     : center;
	justify-content: space-between;
    gap             : 12px;
    padding         : 0 30px;
    height          : 75px;
    flex-shrink     : 0;
    background      : #fff;
    position        : sticky;
    top             : 0;
    z-index         : 1;
}

/* Pulsante back */
.emm-slide-back {
    display         : flex !important;
	padding: 0 !important;
    gap             : 12px;
	align-items: baseline;
    background      : none !important;
    border          : none !important;
    box-shadow      : none !important;
    cursor          : pointer;
    padding         : 8px 0;
	text-decoration: none !important;
    flex-shrink     : 0;
    -webkit-tap-highlight-color: transparent;
}

.emm-slide-back__label {
	font-size:var(--h3-font-size);
	color:var(--fnm-color-blue);
	line-height: 25px !important;
	letter-spacing: -0.42px !important;
}


.emm-slide-back:hover { color: #0070f3; }
.emm-slide-back:focus-visible {
    outline        : 2px solid #0070f3;
    outline-offset : 2px;
    border-radius  : 2px;
}

button.emm-slide-close {
    background: transparent !important;
    padding: 0 !important;
    display: flex;
}



/* Titolo pannello */
.emm-slide-title {
    flex          : 1;
    font-size     : 15px;
    font-weight   : 600;
    color         : #111;
    white-space   : nowrap;
    overflow      : hidden;
    text-overflow : ellipsis;
}

/* Contenuto scrollabile */
.emm-slide-content {
    flex                       : 1;
    overflow-y                 : auto;
    padding                    : 8px 0 32px;
    -webkit-overflow-scrolling : touch;
}

/* ── Reset clone ──────────────────────────────────────────────────────────
   Specificità 0,3,0 → batte la regola .emm-wrapper[...] .emm-panel (0,2,0)
   Questo è il fix principale per il bug display:none sul clone.
   ───────────────────────────────────────────────────────────────────────── */
.emm-slide-content .emm-panel.emm-slide-cloned,
.emm-slide-content .emm-dropdown.emm-slide-cloned {
    all            : unset !important;
    display        : block !important;
	box-sizing     : border-box !important;
    width          : 100% !important;
    max-height     : none !important;
    overflow       : visible !important;
    position       : static !important;
    opacity        : 1 !important;
    transform      : none !important;
    pointer-events : auto !important;
    visibility     : visible !important;
    background     : transparent !important;
    box-shadow     : none !important;
}
.emm-slide-content .emm-panel.emm-slide-cloned .emm-panel__inner {
    padding : 8px 0 !important;
}

/* Voci <li> e <a> dentro il dropdown clonato nello slide panel */
.emm-slide-content .emm-dropdown.emm-slide-cloned li {
    list-style : none !important;
    display    : block !important;
}
.emm-slide-content .emm-dropdown.emm-slide-cloned a,
.emm-slide-content .emm-dropdown.emm-slide-cloned .emm-link {
    display         : block !important;
    padding         : 14px 24px !important;
    color           : #111 !important;
    font-size       : 15px !important;
    font-weight     : 400 !important;
    text-decoration : none !important;
    border-bottom   : 1px solid #f5f5f5 !important;
    background      : transparent !important;
    transition      : background 150ms ease, color 150ms ease !important;
    height          : auto !important;
    white-space     : normal !important;
}
.emm-slide-content .emm-dropdown.emm-slide-cloned a:hover,
.emm-slide-content .emm-dropdown.emm-slide-cloned .emm-link:hover {
    background : #f8f8f8 !important;
    color      : #0070f3 !important;
}

/* Voci dentro lo slide panel */
/*.emm-slide-content .emm-link,
.emm-slide-content a {
    display         : block;
    padding         : 14px 24px;
    color           : #111;
    font-size       : 15px;
    font-weight     : 400;
    text-decoration : none;
    border-bottom   : 1px solid #f5f5f5;
    transition      : background 150ms ease, color 150ms ease;
}
.emm-slide-content .emm-link:hover,
.emm-slide-content a:hover {
    background : #f8f8f8;
    color      : #0070f3;
}*/

/* =========================================================================
   15c. MOBILE – Nav utility (destra) dentro il pannello mobile
   ========================================================================= */

/* Su desktop: nascosto (il menu utility desktop vive ora nella topbar) */
.emm-mobile-right {
    display : none;
}

/* Base reset per la lista utility dentro il pannello mobile */
.emm-nav-right {
    display     : flex;
    align-items : center;
    list-style  : none;
    margin      : 0;
    padding     : 0;
    gap         : 4px;
}
.emm-nav-right li { list-style: none; }

@media (max-width: 1024px) {
	
	
	.emm-nav {
		width:100%;
		gap:30px;
	}
	
	.emm-slide-header {
		border-bottom   : 0px solid #f0f0f0;
	}
	
    .emm-mobile-right {
        display     : block;
        padding     : 0px 0 var(--spacing-L);
	    height:25%;
    }

    .emm-nav-right--mobile {
        flex-direction : column;
        align-items    : stretch;
        gap            : 0;
    }

    .emm-nav-right--mobile li {
        list-style : none;
    }

    /* Stile voci: identico alle voci principali del menu mobile (stessa
       tipografia/colore) con chevron a destra, come nel Figma */
    .emm-nav-right--mobile a {
        display         : flex;
        align-items     : center;
        justify-content : flex-start;
        padding         : 15px 24px;
        font-size       : var(--cta-font-size, 18px) !important;
        font-weight     : 600;
        letter-spacing  : 0.01em;
        text-transform  : none;
        text-decoration : none;
        border-radius   : 0;
        cursor          : pointer;
        transition      : background 150ms ease, color 150ms ease;
    }

    /* Chevron a destra – coerente con le voci principali (.emm-link__arrow) */
    .emm-nav-right--mobile a::after {
        content       : '';
        display       : inline-block;
        width         : 8px;
        height        : 8px;
        border-right  : 1.5px solid currentColor;
        border-bottom : 1.5px solid currentColor;
        transform     : rotate(-45deg);
        flex-shrink   : 0;
        margin-left   : auto;
    }

    /*.emm-nav-right--mobile a:hover {
        background : #f5f5f5;
        color      : #0070f3;
    }*/

    /* Ultima voce come bottone (se abilitata) */
    .emm-header--last-btn .emm-nav-right--mobile li:last-child a {
        margin          : 8px 24px 0;
        padding         : 10px 20px;
        border          : 1px solid #111;
        border-radius   : 2px;
        justify-content : center;
        width           : auto;
    }
    .emm-header--last-btn .emm-nav-right--mobile li:last-child a::after {
        display : none;
    }
    .emm-header--last-btn .emm-nav-right--mobile li:last-child a:hover {
        background  : #111;
        color       : #fff;
        border-color: #111;
    }

    /* ── Selettore lingua: ORIZZONTALE, entrambe le lingue affiancate,
       esattamente come nel desktop (non impilato, nessun chevron) ── */
    .emm-mobile-right .emm-wpml-wrap {
        padding : 15px 24px 0;
    }
    .emm-mobile-right .emm-wpml__item a,
    .emm-mobile-right .emm-wpml__current {
        color      : var(--fnm-color-blue) !important;
        font-size  : 16px !important;
        opacity    : 1 !important;
    }
    .emm-mobile-right .emm-wpml__current {
        opacity : 0.55 !important; /* lingua corrente leggermente attenuata, come sul desktop */
    }
}

/* =========================================================================
   Voce lingua nel drawer mobile — riga dedicata sotto le voci utility
   ========================================================================= */

/* =========================================================================
   16. Spacer (compensa header sticky)
   ========================================================================= */
.emm-spacer {
    height : calc(var(--emm-header-h) + var(--emm-topbar-h));
}


/* =========================================================================
   17. Accessibilità – focus visibile
   ========================================================================= */

/* Colore unico del focus (cambialo qui se serve) */
:root {
    --emm-focus-color: #000;
}

/* Voci menu principale e utility */
.emm-link:focus-visible,
.emm-nav-right a:focus-visible,
.emm-nav-right--mobile a:focus-visible {
    outline        : 2px solid var(--emm-focus-color) !important;
    outline-offset : 2px;
    border-radius  : 2px;
}

/* Pannello mega (desktop) */
.emm-panel a:focus-visible,
.emm-panel button:focus-visible,
.emm-panel [tabindex]:focus-visible {
    outline        : 2px solid var(--emm-focus-color) !important;
    outline-offset : 2px;
    border-radius  : 2px;
}

/* Dropdown classico */
.emm-dropdown a:focus-visible,
.emm-dropdown .emm-link:focus-visible {
    outline        : 2px solid var(--emm-focus-color) !important;
    outline-offset : -2px;
    border-radius  : 2px;
    background     : #f0f5ff;
}

/* Burger, ricerca, chiudi */
.emm-burger:focus-visible,
.emm-search-toggle:focus-visible,
.emm-nav-panel-close:focus-visible {
    outline        : 2px solid var(--emm-focus-color) !important;
    outline-offset : 4px;
    border-radius  : 2px;
}

/* Slide panel mobile (secondo livello): back, close e link del clone.
   Offset NEGATIVO: il contorno sta dentro l'elemento e non viene
   tagliato dall'overflow di .emm-slide-content */
.emm-slide-back:focus-visible,
.emm-slide-close:focus-visible,
.emm-slide-content a:focus-visible,
.emm-slide-content button:focus-visible,
.emm-slide-content [tabindex]:focus-visible {
    outline        : 2px solid var(--emm-focus-color) !important;
    outline-offset : -2px !important;
    border-radius  : 2px;
}

/* Link Elementor nel clone: dagli una scatola, così il contorno è intero */
.emm-slide-content .elementor-heading-title a {
    display: inline-block;
}

/* Pannelli desktop chiusi: non cliccabili.
   Il clone nello slide panel è escluso (ha sempre pointer-events attivi) */
.emm-panel:not(.emm-slide-cloned):not(.emm-item.is-open > .emm-panel) * {
    pointer-events: none;
}
.emm-item.is-open > .emm-panel * {
    pointer-events: auto;
}








/* =========================================================================
   Smart Sticky – is-hidden
   Usa classe .emm-header--smart per non interferire con lo sticky normale.
   Comparsa  dall'alto → giù : 450ms morbido (cubic-bezier ease-out)
   Scomparsa dal basso → su  : 250ms deciso  (cubic-bezier ease-in)
   ========================================================================= */



/* Stato VISIBILE – transizione di comparsa (dall'alto verso il basso) */
.emm-header--sticky.emm-header--smart {
    transition : transform   750ms cubic-bezier(0.22, 1, 0.36, 1),
                 background  var(--emm-duration) var(--emm-easing),
                 box-shadow  var(--emm-duration) var(--emm-easing) !important;
}

/* Stato NASCOSTO – transizione di scomparsa (dal basso verso l'alto) */
.emm-header--sticky.emm-header--smart.is-hidden {
    transform  : translateY(-100%);
    box-shadow : none !important;
    transition : transform   550ms cubic-bezier(0.4, 0, 1, 1),
                 background  var(--emm-duration) var(--emm-easing),
                 box-shadow  var(--emm-duration) var(--emm-easing)  !important;
}
/* =========================================================================
   FULLSCREEN MENU – hamburger desktop
   Pannello che scorre da destra a sinistra a tutto schermo
   ========================================================================= */

/* ── Hamburger desktop (emm-fs-burger) ─────────────────────────────────── */
.emm-fs-burger {
    display         : flex;
    flex-direction  : column;
    justify-content : center;
    align-items     : center;
    gap             : 5px;
    width           : 40px;
    height          : 40px;
    background      : transparent !important;
    border          : none !important;
    box-shadow      : none !important;
    border-radius   : 0 !important;
    cursor          : pointer;
    padding         : 0 !important;
    margin          : 0 0 0 12px !important;
    flex-shrink     : 0;
}
.emm-fs-burger span {
    display       : block;
    width         : 24px;
    height        : 2px;
    background    : #fff;
    border-radius : 2px;
    transition    : transform 300ms var(--emm-easing),
                    opacity   300ms var(--emm-easing),
                    background 300ms var(--emm-easing);
}
/* Linee scure quando header è scrolled/solid */
.emm-header.is-scrolled  .emm-fs-burger span,
.emm-header--solid       .emm-fs-burger span {
    background : #111;
}
/* → X quando aperto */
.emm-fs-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.emm-fs-burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.emm-fs-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.emm-fs-burger:focus-visible {
    outline        : 2px solid #0070f3;
    outline-offset : 3px;
    border-radius  : 4px;
}

/* Mobile: nascondi fs-burger (usa il burger normale) */
@media (max-width: 1024px) {
    .emm-fs-burger { display: none; }
}

/* ── Overlay fullscreen ─────────────────────────────────────────────────── */
.emm-fs-overlay {
    position   : fixed;
    inset      : 0;
    background : rgba(0, 0, 0, 0.55);
    z-index    : calc(var(--emm-z-header) + 1);
    opacity    : 0;
    pointer-events : none;
    transition : opacity 400ms var(--emm-easing);
}
.emm-fs-overlay.is-open {
    opacity        : 1;
    pointer-events : auto;
}

/* ── Pannello fullscreen ────────────────────────────────────────────────── */
.emm-fs-panel {
    position    : fixed;
    top         : 0;
    right       : 0;
    bottom      : 0;
    width       : 100%;           /* parte fuori schermo a destra */
    background  : #fff;
    z-index     : calc(var(--emm-z-header) + 2);
    transform   : translateX(100%);
    transition  : transform 550ms cubic-bezier(0.22, 1, 0.36, 1);
    overflow-y  : auto;
    display     : flex;
    flex-direction : column;
}
.emm-fs-panel.is-open {
    transform : translateX(0);
}

/* ── Inner container ────────────────────────────────────────────────────── */
.emm-fs-panel__inner {
    display        : flex;
    flex-direction : column;
    min-height     : 100%;
    padding        : 40px 60px 60px;
}

/* ── Pulsante chiudi ────────────────────────────────────────────────────── */
.emm-fs-close {
    display         : flex;
    align-items     : center;
    gap             : 12px;
    background      : none !important;
    border          : none !important;
    box-shadow      : none !important;
    cursor          : pointer;
    padding         : 0 !important;
    margin-bottom   : 60px;
    align-self      : flex-end;
    color           : #111;
    font-size       : 14px;
    letter-spacing  : 0.05em;
    text-transform  : uppercase;
}
.emm-fs-close__icon {
    position : relative;
    width    : 28px;
    height   : 28px;
    flex-shrink : 0;
}
.emm-fs-close__icon::before,
.emm-fs-close__icon::after {
    content    : '';
    position   : absolute;
    top        : 50%;
    left       : 0;
    width      : 100%;
    height     : 2px;
    background : #111;
    border-radius : 2px;
}
.emm-fs-close__icon::before { transform: rotate(45deg); }
.emm-fs-close__icon::after  { transform: rotate(-45deg); }

.emm-fs-close:hover .emm-fs-close__icon::before,
.emm-fs-close:hover .emm-fs-close__icon::after {
    background : #555;
}
.emm-fs-close:focus-visible {
    outline        : 2px solid #0070f3;
    outline-offset : 4px;
    border-radius  : 4px;
}

/* ── Nav fullscreen ─────────────────────────────────────────────────────── */
.emm-fs-nav {
    list-style  : none;
    margin      : 0;
    padding     : 0;
    display     : flex;
    flex-direction : column;
    gap         : 8px;
}
.emm-fs-nav li a {
    display         : block;
    font-size       : var(--emm-fs-font-size, 40px);
    font-weight     : 400;
    line-height     : 1.2;
    color           : #111;
    text-decoration : none;
    padding         : 8px 0;
    transition      : color 200ms ease, transform 200ms ease;
    border-bottom   : 1px solid transparent;
}
.emm-fs-nav li a:hover {
    color     : #555;
    transform : translateX(6px);
}
.emm-fs-nav li a:focus-visible {
    outline        : 2px solid #0070f3;
    outline-offset : 4px;
    border-radius  : 4px;
}

/* Animazione entrata voci a cascata (stagger via JS) */
.emm-fs-nav li {
    opacity   : 0;
    transform : translateX(30px);
    transition: opacity 400ms ease, transform 400ms ease;
}
.emm-fs-panel.is-open .emm-fs-nav li {
    opacity   : 1;
    transform : translateX(0);
}
/* Stagger: ogni voce ritarda di 60ms (applicato inline da JS, fallback CSS) */
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(1)  { transition-delay: 120ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(2)  { transition-delay: 180ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(3)  { transition-delay: 240ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(4)  { transition-delay: 300ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(5)  { transition-delay: 360ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(6)  { transition-delay: 420ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(7)  { transition-delay: 480ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(8)  { transition-delay: 540ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(9)  { transition-delay: 600ms; }
.emm-fs-panel.is-open .emm-fs-nav li:nth-child(10) { transition-delay: 660ms; }



/* =========================================================================
   WPML Language Switcher
   ========================================================================= */
.emm-wpml-wrap {
    display : flex;
    align-items : center;
}
.emm-wpml {
    display     : flex;
    align-items : center;
    gap         : 4px;
    list-style  : none;
    margin      : 0;
    padding     : 0;
}
.emm-wpml__item {
    display     : flex;
    align-items : center;
}
/* Separatore tra lingue */
.emm-wpml__item + .emm-wpml__item::before {
    content     : '/';
    color       : currentColor;
    opacity     : 0.4;
    margin-right: 4px;
    font-size   : 11px;
	display:none !important;
}

li.emm-wpml__item.emm-wpml__item--active {
    display: none !important;
}

.emm-wpml__item a,
.emm-wpml__current {
    display     : flex;
    align-items : center;
    gap         : 5px;
    font-size   : 16px;
    font-weight : 600;
    letter-spacing : 0.08em;
    text-transform : uppercase;
    text-decoration: none;
    line-height : 1;
    transition  : opacity 200ms ease;
}
/* Colori: eredita dal nav-right (bianco su header trasparente, scuro su scrolled) */
.emm-wpml__item a { color: inherit; }
.emm-wpml__item a:hover { opacity: 0.6; }

/* Lingua attiva: leggermente opaca per indicare stato */
.emm-wpml__current {
    opacity : 0.5;
    cursor  : default;
}
.emm-wpml__flag {
    border-radius : 2px;
    vertical-align: middle;
    flex-shrink   : 0;
}





.emm-dropdown {
    transition: none !important;
}



/* =========================================================================
   MOBILE STICKY – altezza ridotta a 65px sotto 767px
   ========================================================================= */
@media (max-width: 767px) {
	
	/* Aggiunge width alla transizione già esistente del logo */
    .emm-logo {
        transition : opacity var(--emm-duration) var(--emm-easing),
                     transform var(--emm-duration) var(--emm-easing),
                     width var(--emm-duration) var(--emm-easing);
    }

    /* Header sticky: riduce altezza a 65px */
    .emm-header--sticky.is-scrolled {
        height: 65px !important;
    }

    /* Logo più piccolo */
    .emm-header--sticky.is-scrolled .emm-logo {
        width : 90px !important;
    }

    /* Nav mobile: top allineato alla nuova altezza */
    .emm-header--sticky.is-scrolled ~ * .emm-header__nav,
    .emm-header--sticky.is-scrolled .emm-header__nav {
        top : 65px !important;
    }

    /* Overlay: stesso top */
    .emm-header--sticky.is-scrolled ~ .emm-overlay,
    .emm-header--sticky.is-scrolled + .emm-overlay {
        top : 65px !important;
    }

    /* Spacer: si adatta se necessario */
    .emm-header--sticky.is-scrolled ~ .emm-spacer {
        height : 65px !important;
    }
}



/* ================================================================
   ACCESSIBILITÀ – Screen reader only
   Visibile solo agli screen reader, non al viewport
   ================================================================ */
.emm-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Focus visibile da tastiera (WCAG 2.4.7) */
.emm-link:focus-visible,
.emm-burger:focus-visible,
.emm-fs-burger:focus-visible,
.emm-search-toggle:focus-visible,
.emm-slide-back:focus-visible,
.emm-slide-close:focus-visible,
.emm-nav-panel-close:focus-visible,
.emm-fs-close:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 2px;
}

/* Rimuove outline su click mouse (solo tastiera) */
.emm-link:focus:not(:focus-visible),
.emm-burger:focus:not(:focus-visible),
.emm-fs-burger:focus:not(:focus-visible),
.emm-search-toggle:focus:not(:focus-visible) {
    outline: none;
}


.emm-slide-content a:focus-visible,
.emm-slide-content button:focus-visible,
.emm-slide-content [tabindex]:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 2px !important;   /* all'interno, così non viene tagliato */
}

.emm-slide-content .elementor-heading-title a {
    display: inline-block !important;
}