/* Formazione: native Elementor Off-Canvas. Brand tokens come from Site Settings. */
body.fz-wordpress {
 --fz-menu-ink:var(--e-global-color-fz_navy,#0a1a33);
 --fz-menu-link:var(--e-global-color-fz_primary,#0c3d85);
 --fz-menu-text:var(--e-global-color-fz_text,#344054);
 --fz-menu-surface:var(--e-global-color-fz_surface,#fff);
 --fz-menu-overlay:var(--e-global-color-fz_overlay,rgba(10,26,51,.55));
 --fz-menu-duration:500ms;
 --fz-menu-ease:cubic-bezier(.2,.7,.2,1);
 --fz-menu-layer:2147483630;
}
/* Keep the desktop menu genuinely centered; Elementor already supplies item spacing. */
.fz-wordpress .fz-elementor-menu .e-n-menu-heading {gap:0;}
/* Extra breathing room on wide desktop screens; laptop/mobile spacing stays native. */
@media(min-width:1600px){
 body.fz-wordpress .elementor .elementor-element.fz-elementor-menu{--n-menu-title-space-between:36px;}
}
.fz-wordpress .elementor .elementor-widget-button.fz-menu-open-widget {display:none;}
@media(max-width:1024px) {
 body.fz-wordpress .fz-header__inner>.fz-elementor-menu {display:none;}
 .fz-wordpress .elementor .elementor-widget-button.fz-menu-open-widget {display:contents;}
 body.fz-wordpress .fz-header__actions {margin-left:auto;}
}
/* The widget is a sibling of the sticky header, avoiding its backdrop-filter containing block. */
body.fz-wordpress .fz-site-drawer {
 --font-heading:var(--e-global-typography-fz_heading-font-family,"Manrope"),sans-serif;
 --font-body:var(--e-global-typography-fz_body-font-family,"Inter"),system-ui,sans-serif;
 --e-off-canvas-height:100dvh;
 --e-off-canvas-animation-duration:var(--fz-menu-duration);
 --e-off-canvas-justify-content:flex-end;
}
.fz-wordpress .fz-site-drawer .e-off-canvas {z-index:var(--fz-menu-layer);}
.fz-wordpress .fz-site-drawer .e-off-canvas__content {
 background:var(--fz-menu-surface);height:100dvh;max-width:100vw;
 overflow:auto;overscroll-behavior:contain;
 box-shadow:var(--shadow-float);
}
.fz-wordpress .fz-site-drawer .e-off-canvas__overlay {background:var(--fz-menu-overlay);}
.fz-wordpress .fz-site-drawer .e-off-canvas__main {animation-timing-function:var(--fz-menu-ease);}
.fz-wordpress .fz-site-drawer .e-off-canvas__main.slideInRight {animation-name:fz-drawer-open;}
.fz-wordpress .fz-site-drawer .e-off-canvas__main.slideOutRight {animation-name:fz-drawer-close;}
@keyframes fz-drawer-open {from{transform:translateX(var(--e-off-canvas-width));}to{transform:translateX(0);}}
@keyframes fz-drawer-close {from{transform:translateX(0);}to{transform:translateX(var(--e-off-canvas-width));}}
/* All content remains real Elementor containers and native widgets. */
body.fz-wordpress .fz-drawer-shell {
 display:flex;flex-direction:column;gap:var(--space-6);width:100%;min-height:100dvh;
 padding:var(--space-6);color:var(--fz-menu-text);font-family:var(--font-body);
}
body.fz-wordpress .fz-drawer-top {display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4);}
body.fz-wordpress .fz-drawer-views {display:block;width:100%;overflow:hidden;}
body.fz-wordpress .fz-drawer-view {display:flex;flex-direction:column;gap:0;width:100%;}
body.fz-wordpress .fz-drawer-view[hidden] {display:none;}
.fz-wordpress .fz-drawer-view.is-level-entering {animation:fz-menu-level-in var(--fz-menu-duration) var(--fz-menu-ease) both;}
@keyframes fz-menu-level-in {from{opacity:0;transform:translateX(24px);}to{opacity:1;transform:translateX(0);}}
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-sub-link,.fz-drawer-back) {
 display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
 position:relative;min-height:48px;width:100%;margin:0;padding:12px 0;
 border:0;border-radius:0;background:transparent;color:var(--fz-menu-ink);
 font:600 18px/1.4 var(--font-body);text-align:left;white-space:normal;box-shadow:none;
}
body.fz-wordpress .fz-drawer-sub-link {font-size:16px;min-height:44px;}
body.fz-wordpress .fz-drawer-back {justify-content:flex-start;font-size:14px;color:var(--fz-menu-link);}
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-back) .elementor-button-icon {display:flex;flex:0 0 18px;width:18px;margin:0;order:2;}
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-back) .elementor-button-icon svg {width:18px;height:18px;fill:currentColor;}
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-back) .elementor-button-text {order:1;}
body.fz-wordpress .fz-drawer-back .elementor-button-icon {order:0;}
/* Mobile drawer: no blue underline. Keyboard focus keeps its visible outline. */
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-sub-link)::after {content:none;}
body.fz-wordpress :is(.fz-drawer-nav-link,.fz-drawer-sub-link) {text-decoration:none;}
body.fz-wordpress .fz-site-drawer .elementor-heading-title {font:700 22px/1.3 var(--font-heading);color:var(--fz-menu-ink);margin:8px 0;}
body.fz-wordpress .fz-drawer-contacts {display:flex;flex-direction:column;gap:4px;padding-top:var(--space-4);border-top:1px solid var(--color-border);}
body.fz-wordpress .fz-drawer-contact-link {display:flex;align-items:center;min-height:44px;color:var(--fz-menu-text);font:500 15px/1.5 var(--font-body);}
body.fz-wordpress .fz-drawer-contacts p {font:400 14px/1.6 var(--font-body);color:var(--fz-menu-text);margin:8px 0;}
/* Compact contacts requested for the drawer only. Each link retains a 44px
   touch target; the heading and social widget are archived outside the panel. */
body.fz-wordpress .fz-drawer-contacts {gap:0;padding-top:12px;}
body.fz-wordpress .fz-drawer-contact-list {margin:0;}
body.fz-wordpress .fz-drawer-contact-list .elementor-icon-list-item {margin:0;padding:0;}
body.fz-wordpress .fz-drawer-contact-list .elementor-icon-list-item>a {display:flex;align-items:center;gap:8px;min-height:44px;width:100%;font:500 14px/1.4 var(--font-body);color:var(--fz-menu-text);text-decoration:none;}
body.fz-wordpress .fz-drawer-contact-list .fz-icon {width:18px;height:18px;color:var(--fz-menu-link);}
body.fz-wordpress .fz-drawer-contact-list .fz-drawer-contact-address {display:flex;align-items:center;gap:8px;min-height:44px;padding:0;margin:0;font:400 13px/1.5 var(--font-body);color:var(--fz-menu-text);}
body.fz-wordpress .fz-drawer-contacts p {font-size:13px;line-height:1.5;margin:4px 0 0;}
body.fz-wordpress .fz-drawer-bottom {margin-top:auto;display:block;padding-top:var(--space-3);padding-bottom:env(safe-area-inset-bottom,0);}
body.fz-wordpress .fz-drawer-cta {width:100%;min-height:48px;font-family:var(--font-body);}
/* Generous, consistently shaped touch targets, including social links and close/open. */
body.fz-wordpress :is(.fz-menu-open,.fz-menu-close) {
 display:inline-flex;align-items:center;justify-content:center;flex:none;
 width:44px;height:44px;min-width:44px;min-height:44px;padding:12px;
 border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fz-menu-ink);box-shadow:none;
}
body.fz-wordpress :is(.fz-menu-open,.fz-menu-close) svg {width:20px;height:20px;fill:currentColor;}
body.fz-wordpress .fz-drawer-social {display:block;margin-top:8px;}
.fz-wordpress .fz-drawer-social .elementor-social-icon {width:44px;height:44px;padding:12px;border-radius:var(--radius-sm);background:var(--color-background-blue);color:var(--fz-menu-link);}
.fz-wordpress .fz-drawer-social .elementor-social-icon svg {width:20px;height:20px;fill:var(--fz-menu-link);}
body.fz-wordpress :is(.fz-menu-open,.fz-menu-close,.fz-site-drawer a,.fz-site-drawer button):focus-visible {outline:3px solid var(--color-focus);outline-offset:3px;}
/* Cascade restarts for each open, never hides content if JavaScript/animations are unavailable. */
.fz-wordpress .e-off-canvas[aria-hidden=false] .fz-drawer-view:not([hidden]) :is(.fz-drawer-nav-link,.fz-drawer-sub-link) {animation:fz-menu-item-in 400ms var(--fz-menu-ease) both;animation-delay:var(--fz-item-delay,0ms);}
@keyframes fz-menu-item-in {from{opacity:0;transform:translateX(12px);}to{opacity:1;transform:translateX(0);}}
@media(max-width:767px) {
 .fz-wordpress .fz-site-drawer {--e-off-canvas-width:100%;}
 body.fz-wordpress .fz-drawer-shell {padding:var(--space-5);gap:var(--space-5);}
 body.fz-wordpress .fz-drawer-nav-link {font-size:18px;}
}
@media(prefers-reduced-motion:reduce) {
 body.fz-wordpress {--fz-menu-duration:1ms;}
 .fz-wordpress .fz-site-drawer *, .fz-wordpress .fz-site-drawer *::after {animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important;}
}
