/* 
Theme Name: Hello Elementor Child
Theme URI: https://www.inyourlife.info/francesco-borrelli-staff-iyl/
Description: Hello Elementor Child enhanced with InYourLife Framework CSS - Advanced child theme of Hello Elementor with automatic WordPress setup, plugin management, responsive utilities, and performance optimizations
Author: Francesco Borrelli - InYourLife Srl
Author URI: https://www.inyourlife.info/francesco-borrelli-staff-iyl/
Template: hello-elementor
Version: 2.2.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready, framework-css, responsive-utilities, elementor-optimized
*/

/*
 * Framework CSS InYourLife - gestione fluid e responsive
 *
 * INDICE:
 * 1. Variabili globali (root): padding, altezza hero, offset, larghezze narrow
 * 2. Classi section-xxs ... section-xxl: padding fluido per sezioni
 * 3. section-header: padding specifico per header
 * 4. section-hero: altezza minima e centratura contenuto
 * 5. section-full: sezioni full-width (senza padding laterale)
 * 6. section-narrow / section-narrow-xs: larghezza massima del contenuto
 * 7. section-offset: padding superiore offset per header overlay
 *
 * Breve descrizione:
 * Questo framework semplifica la costruzione di layout responsive
 * basati su classi utility. Usa variabili CSS per spaziature fluide,
 * gestisce hero full-screen, sezioni a larghezza limitata o piena,
 * e supporta facilmente overlay di header con offset.
 */

:root {
    /* Global Padding Variables - Editable */
    /* Left and Right Padding All /Sections/Containers*/
    --fluid-side-padding-min: 1.25rem; /* 20px */
    --fluid-side-padding-max: 5rem;   /* 80px */

    /* Top and Bottom Padding All Containers*/
    --section-xxl-padding-min: 9.375rem; /* 150px */
    --section-xxl-padding-max: 10rem; /* 160px */ 
  
    --section-xl-padding-min: 6.875rem; /* 110px */
    --section-xl-padding-max: 7.5rem; /* 120px */
  
    --section-l-padding-min: 5.625rem; /* 90px */
    --section-l-padding-max: 6.25rem; /* 100px */
  
    --section-m-padding-min: 5rem; /* 80px */
    --section-m-padding-max: 5rem; /* 80px */
  
    --section-s-padding-min: 3.75rem; /* 60px */
    --section-s-padding-max: 3.75rem; /* 60px */
  
    --section-xs-padding-min: 2.5rem; /* 40px */
    --section-xs-padding-max: 2.5rem; /* 40px */
  
    --section-xxs-padding-min: 1.5rem; /* 24px */
    --section-xxs-padding-max: 1.5rem; /* 24px */
    
    --section-header-padding-min: 1.25rem; /* 20px */
    --section-header-padding-max: 1.25rem; /* 20px */

  
    /* Hero Sections Height Variable */
    --section-hero-height: 100vh; /* 100% the screen height */
  
    /* Offset Padding for Overlay Headers */
    --section-offset-header: 80px; /* Adjust to the overlay header's negative margin */

    /* Width For Narrow Sections*/
    --section-narrow: 62.5rem; /* 1000px */
    --section-narrow-xs: 45rem; /* 720px */
  }


/* CSS Template (do not edit below) */
  
  
  /* Section/Container Padding - Fluid Variants */
  .section-xxl {
    padding-top: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-bottom: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xl {
    padding-top: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-bottom: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-l {
    padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-m {
    padding-top: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    padding-bottom: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-s {
    padding-top: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-bottom: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xs {
    padding-top: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-bottom: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-xxs {
    padding-top: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-bottom: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  .section-header {
    padding-top: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-bottom: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max))!important;
  }
  
  /* Hero Container/Sections Height */
  .section-hero {
    min-height: var(--section-hero-height)!important;
  }

  .section-hero .e-con-inner {
    justify-content: center!important;
}
  
  /* Full Width Sections - No Side Padding */

  .section-full div {
    max-width: 100%!important;
  }
  

  /* Narrow Sections */
  .section-narrow .e-con-inner {
    max-width: var(--section-narrow)!important;
  }

  .section-narrow-xs .e-con-inner {
    max-width: var(--section-narrow-xs)!important;
  }


  /* Offset Padding for Overlay Headers */
  .section-offset {
    padding-top: calc(var(--section-offset-header) + var(--section-xxl-padding-min));
  }

  /* ========================================== */
  /* RESPONSIVE MEDIA QUERIES */
  /* ========================================== */
  
  /* Tablet breakpoint (768px - 1024px) */
  @media (max-width: 1024px) {
    .section-xxl {
      padding-top: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
      padding-bottom: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    }
    
    .section-xl {
      padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
      padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    }
    
    .section-l {
      padding-top: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
      padding-bottom: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    }
    
    .section-m {
      padding-top: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
      padding-bottom: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    }
    
    .section-s {
      padding-top: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
      padding-bottom: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    }
    
    .section-xs {
      padding-top: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
      padding-bottom: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    }
    
    .section-xxs {
      padding-top: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
      padding-bottom: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    }
  }

  /* Mobile breakpoint (max 767px) */
  @media (max-width: 767px) {
    .section-xxl {
      padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
      padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    }
    
    .section-xl {
      padding-top: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
      padding-bottom: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    }
    
    .section-l {
      padding-top: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
      padding-bottom: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    }
    
    .section-m {
      padding-top: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
      padding-bottom: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    }
    
    .section-s {
      padding-top: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
      padding-bottom: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    }
    
    .section-xs {
      padding-top: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
      padding-bottom: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    }
    
    /* xxs diventa xss su mobile */
    .section-xxs {
      padding-top: 0.75rem; /* 12px */
      padding-bottom: 0.75rem;
    }
  }

  /* ========================================== */
  /* UTILITY CLASSES - LAYOUT */
  /* ========================================== */
  
  /* Flexbox utilities */
  .flex { display: flex; }
  .flex-col { flex-direction: column; }
  .flex-row { flex-direction: row; }
  .flex-wrap { flex-wrap: wrap; }
  .flex-nowrap { flex-wrap: nowrap; }
  
  /* Justify content */
  .justify-start { justify-content: flex-start; }
  .justify-end { justify-content: flex-end; }
  .justify-center { justify-content: center; }
  .justify-between { justify-content: space-between; }
  .justify-around { justify-content: space-around; }
  .justify-evenly { justify-content: space-evenly; }
  
  /* Align items */
  .items-start { align-items: flex-start; }
  .items-end { align-items: flex-end; }
  .items-center { align-items: center; }
  .items-baseline { align-items: baseline; }
  .items-stretch { align-items: stretch; }
  
  /* Grid utilities */
  .grid { display: grid; }
  .grid-1 { grid-template-columns: repeat(1, 1fr); }
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
  .grid-5 { grid-template-columns: repeat(5, 1fr); }
  .grid-6 { grid-template-columns: repeat(6, 1fr); }
  
  /* Gap utilities */
  .gap-0 { gap: 0; }
  .gap-1 { gap: 0.25rem; }
  .gap-2 { gap: 0.5rem; }
  .gap-3 { gap: 0.75rem; }
  .gap-4 { gap: 1rem; }
  .gap-5 { gap: 1.25rem; }
  .gap-6 { gap: 1.5rem; }
  .gap-8 { gap: 2rem; }
  .gap-10 { gap: 2.5rem; }
  .gap-12 { gap: 3rem; }
  
  /* ========================================== */
  /* UTILITY CLASSES - SPACING */
  /* ========================================== */
  
  /* Margin utilities */
  .m-0 { margin: 0; }
  .m-1 { margin: 0.25rem; }
  .m-2 { margin: 0.5rem; }
  .m-3 { margin: 0.75rem; }
  .m-4 { margin: 1rem; }
  .m-5 { margin: 1.25rem; }
  .m-6 { margin: 1.5rem; }
  .m-8 { margin: 2rem; }
  .m-10 { margin: 2.5rem; }
  .m-12 { margin: 3rem; }
  .m-auto { margin: auto; }
  
  /* Margin top */
  .mt-0 { margin-top: 0; }
  .mt-1 { margin-top: 0.25rem; }
  .mt-2 { margin-top: 0.5rem; }
  .mt-3 { margin-top: 0.75rem; }
  .mt-4 { margin-top: 1rem; }
  .mt-5 { margin-top: 1.25rem; }
  .mt-6 { margin-top: 1.5rem; }
  .mt-8 { margin-top: 2rem; }
  .mt-10 { margin-top: 2.5rem; }
  .mt-12 { margin-top: 3rem; }
  
  /* Margin bottom */
  .mb-0 { margin-bottom: 0; }
  .mb-1 { margin-bottom: 0.25rem; }
  .mb-2 { margin-bottom: 0.5rem; }
  .mb-3 { margin-bottom: 0.75rem; }
  .mb-4 { margin-bottom: 1rem; }
  .mb-5 { margin-bottom: 1.25rem; }
  .mb-6 { margin-bottom: 1.5rem; }
  .mb-8 { margin-bottom: 2rem; }
  .mb-10 { margin-bottom: 2.5rem; }
  .mb-12 { margin-bottom: 3rem; }
  
  /* Margin left */
  .ml-0 { margin-left: 0; }
  .ml-1 { margin-left: 0.25rem; }
  .ml-2 { margin-left: 0.5rem; }
  .ml-3 { margin-left: 0.75rem; }
  .ml-4 { margin-left: 1rem; }
  .ml-5 { margin-left: 1.25rem; }
  .ml-6 { margin-left: 1.5rem; }
  .ml-8 { margin-left: 2rem; }
  .ml-10 { margin-left: 2.5rem; }
  .ml-12 { margin-left: 3rem; }
  .ml-auto { margin-left: auto; }
  
  /* Margin right */
  .mr-0 { margin-right: 0; }
  .mr-1 { margin-right: 0.25rem; }
  .mr-2 { margin-right: 0.5rem; }
  .mr-3 { margin-right: 0.75rem; }
  .mr-4 { margin-right: 1rem; }
  .mr-5 { margin-right: 1.25rem; }
  .mr-6 { margin-right: 1.5rem; }
  .mr-8 { margin-right: 2rem; }
  .mr-10 { margin-right: 2.5rem; }
  .mr-12 { margin-right: 3rem; }
  .mr-auto { margin-right: auto; }
  
  /* Padding utilities */
  .p-0 { padding: 0; }
  .p-1 { padding: 0.25rem; }
  .p-2 { padding: 0.5rem; }
  .p-3 { padding: 0.75rem; }
  .p-4 { padding: 1rem; }
  .p-5 { padding: 1.25rem; }
  .p-6 { padding: 1.5rem; }
  .p-8 { padding: 2rem; }
  .p-10 { padding: 2.5rem; }
  .p-12 { padding: 3rem; }
  
  /* Padding top */
  .pt-0 { padding-top: 0; }
  .pt-1 { padding-top: 0.25rem; }
  .pt-2 { padding-top: 0.5rem; }
  .pt-3 { padding-top: 0.75rem; }
  .pt-4 { padding-top: 1rem; }
  .pt-5 { padding-top: 1.25rem; }
  .pt-6 { padding-top: 1.5rem; }
  .pt-8 { padding-top: 2rem; }
  .pt-10 { padding-top: 2.5rem; }
  .pt-12 { padding-top: 3rem; }
  
  /* Padding bottom */
  .pb-0 { padding-bottom: 0; }
  .pb-1 { padding-bottom: 0.25rem; }
  .pb-2 { padding-bottom: 0.5rem; }
  .pb-3 { padding-bottom: 0.75rem; }
  .pb-4 { padding-bottom: 1rem; }
  .pb-5 { padding-bottom: 1.25rem; }
  .pb-6 { padding-bottom: 1.5rem; }
  .pb-8 { padding-bottom: 2rem; }
  .pb-10 { padding-bottom: 2.5rem; }
  .pb-12 { padding-bottom: 3rem; }
  
  /* Padding left */
  .pl-0 { padding-left: 0; }
  .pl-1 { padding-left: 0.25rem; }
  .pl-2 { padding-left: 0.5rem; }
  .pl-3 { padding-left: 0.75rem; }
  .pl-4 { padding-left: 1rem; }
  .pl-5 { padding-left: 1.25rem; }
  .pl-6 { padding-left: 1.5rem; }
  .pl-8 { padding-left: 2rem; }
  .pl-10 { padding-left: 2.5rem; }
  .pl-12 { padding-left: 3rem; }
  
  /* Padding right */
  .pr-0 { padding-right: 0; }
  .pr-1 { padding-right: 0.25rem; }
  .pr-2 { padding-right: 0.5rem; }
  .pr-3 { padding-right: 0.75rem; }
  .pr-4 { padding-right: 1rem; }
  .pr-5 { padding-right: 1.25rem; }
  .pr-6 { padding-right: 1.5rem; }
  .pr-8 { padding-right: 2rem; }
  .pr-10 { padding-right: 2.5rem; }
  .pr-12 { padding-right: 3rem; }
  
  /* ========================================== */
  /* UTILITY CLASSES - TYPOGRAPHY */
  /* ========================================== */
  
  /* Text align */
  .text-left { text-align: left; }
  .text-center { text-align: center; }
  .text-right { text-align: right; }
  .text-justify { text-align: justify; }
  
  /* Text transform */
  .uppercase { text-transform: uppercase; }
  .lowercase { text-transform: lowercase; }
  .capitalize { text-transform: capitalize; }
  .normal-case { text-transform: none; }
  
  /* Font weight */
  .font-thin { font-weight: 100; }
  .font-light { font-weight: 300; }
  .font-normal { font-weight: 400; }
  .font-medium { font-weight: 500; }
  .font-semibold { font-weight: 600; }
  .font-bold { font-weight: 700; }
  .font-extrabold { font-weight: 800; }
  .font-black { font-weight: 900; }
  
  /* Font size */
  .text-xs { font-size: 0.75rem; line-height: 1rem; }
  .text-sm { font-size: 0.875rem; line-height: 1.25rem; }
  .text-base { font-size: 1rem; line-height: 1.5rem; }
  .text-lg { font-size: 1.125rem; line-height: 1.75rem; }
  .text-xl { font-size: 1.25rem; line-height: 1.75rem; }
  .text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
  .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .text-5xl { font-size: 3rem; line-height: 1; }
  .text-6xl { font-size: 3.75rem; line-height: 1; }
  
  /* Line height */
  .leading-none { line-height: 1; }
  .leading-tight { line-height: 1.25; }
  .leading-snug { line-height: 1.375; }
  .leading-normal { line-height: 1.5; }
  .leading-relaxed { line-height: 1.625; }
  .leading-loose { line-height: 2; }
  
  /* ========================================== */
  /* UTILITY CLASSES - RESPONSIVE */
  /* ========================================== */
  
  /* Display utilities */
  .block { display: block; }
  .inline-block { display: inline-block; }
  .inline { display: inline; }
  .hidden { display: none; }
  
  /* Visibility utilities */
  .visible { visibility: visible; }
  .invisible { visibility: hidden; }
  
  /* Position utilities */
  .static { position: static; }
  .fixed { position: fixed; }
  .absolute { position: absolute; }
  .relative { position: relative; }
  .sticky { position: sticky; }
  
  /* Width utilities */
  .w-auto { width: auto; }
  .w-full { width: 100%; }
  .w-screen { width: 100vw; }
  .w-1\/2 { width: 50%; }
  .w-1\/3 { width: 33.333333%; }
  .w-2\/3 { width: 66.666667%; }
  .w-1\/4 { width: 25%; }
  .w-3\/4 { width: 75%; }
  
  /* Height utilities */
  .h-auto { height: auto; }
  .h-full { height: 100%; }
  .h-screen { height: 100vh; }
  
  /* Responsive visibility */
  @media (max-width: 767px) {
    .hidden-mobile { display: none !important; }
    .visible-mobile { display: block !important; }
    .grid-2, .grid-3, .grid-4, .grid-5, .grid-6 { 
      grid-template-columns: 1fr; 
    }
  }
  
  @media (min-width: 768px) {
    .hidden-desktop { display: none !important; }
    .visible-desktop { display: block !important; }
  }
  
  @media (min-width: 768px) and (max-width: 1024px) {
    .hidden-tablet { display: none !important; }
    .visible-tablet { display: block !important; }
  }

  /* ========================================== */
  /* ANIMATION FRAMEWORK */
  /* ========================================== */
  
  /* Animation variables */
  :root {
    --animation-duration-fast: 0.15s;
    --animation-duration-normal: 0.3s;
    --animation-duration-slow: 0.6s;
    --animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
    --animation-easing-in: cubic-bezier(0.4, 0, 1, 1);
    --animation-easing-out: cubic-bezier(0, 0, 0.2, 1);
    --animation-easing-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  }
  
  /* Base animation classes */
  .animate {
    transition: all var(--animation-duration-normal) var(--animation-easing);
  }
  
  .animate-fast {
    transition: all var(--animation-duration-fast) var(--animation-easing);
  }
  
  .animate-slow {
    transition: all var(--animation-duration-slow) var(--animation-easing);
  }
  
  /* Keyframe animations */
  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  
  @keyframes fadeInUp {
    from { 
      opacity: 0;
      transform: translateY(30px);
    }
    to { 
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  @keyframes fadeInDown {
    from { 
      opacity: 0;
      transform: translateY(-30px);
    }
    to { 
      opacity: 1;
      transform: translateY(0);
    }
  }
  
  @keyframes fadeInLeft {
    from { 
      opacity: 0;
      transform: translateX(-30px);
    }
    to { 
      opacity: 1;
      transform: translateX(0);
    }
  }
  
  @keyframes fadeInRight {
    from { 
      opacity: 0;
      transform: translateX(30px);
    }
    to { 
      opacity: 1;
      transform: translateX(0);
    }
  }
  
  @keyframes zoomIn {
    from { 
      opacity: 0;
      transform: scale(0.8);
    }
    to { 
      opacity: 1;
      transform: scale(1);
    }
  }
  
  @keyframes slideUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
  }
  
  @keyframes slideDown {
    from { transform: translateY(-100%); }
    to { transform: translateY(0); }
  }
  
  @keyframes bounce {
    0%, 20%, 53%, 80%, 100% {
      transform: translate3d(0,0,0);
    }
    40%, 43% {
      transform: translate3d(0, -30px, 0);
    }
    70% {
      transform: translate3d(0, -15px, 0);
    }
    90% {
      transform: translate3d(0, -4px, 0);
    }
  }
  
  @keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
  }
  
  @keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
    20%, 40%, 60%, 80% { transform: translateX(10px); }
  }
  
  /* Animation utility classes */
  .fade-in {
    animation: fadeIn var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .fade-in-up {
    animation: fadeInUp var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .fade-in-down {
    animation: fadeInDown var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .fade-in-left {
    animation: fadeInLeft var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .fade-in-right {
    animation: fadeInRight var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .zoom-in {
    animation: zoomIn var(--animation-duration-slow) var(--animation-easing-out) forwards;
  }
  
  .slide-up {
    animation: slideUp var(--animation-duration-normal) var(--animation-easing-out) forwards;
  }
  
  .slide-down {
    animation: slideDown var(--animation-duration-normal) var(--animation-easing-out) forwards;
  }
  
  .bounce {
    animation: bounce 1s infinite;
  }
  
  .pulse {
    animation: pulse 2s infinite;
  }
  
  .shake {
    animation: shake 0.5s ease-in-out;
  }
  
  /* Hover animations */
  .hover-lift {
    transition: transform var(--animation-duration-normal) var(--animation-easing);
  }
  
  .hover-lift:hover {
    transform: translateY(-5px);
  }
  
  .hover-scale {
    transition: transform var(--animation-duration-normal) var(--animation-easing);
  }
  
  .hover-scale:hover {
    transform: scale(1.05);
  }
  
  .hover-fade {
    transition: opacity var(--animation-duration-normal) var(--animation-easing);
  }
  
  .hover-fade:hover {
    opacity: 0.8;
  }
  
  /* Scroll-triggered animations (require JavaScript) */
  .scroll-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity var(--animation-duration-slow) var(--animation-easing),
                transform var(--animation-duration-slow) var(--animation-easing);
  }
  
  .scroll-animate.visible {
    opacity: 1;
    transform: translateY(0);
  }
  
  .scroll-animate-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity var(--animation-duration-slow) var(--animation-easing),
                transform var(--animation-duration-slow) var(--animation-easing);
  }
  
  .scroll-animate-left.visible {
    opacity: 1;
    transform: translateX(0);
  }
  
  .scroll-animate-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity var(--animation-duration-slow) var(--animation-easing),
                transform var(--animation-duration-slow) var(--animation-easing);
  }
  
  .scroll-animate-right.visible {
    opacity: 1;
    transform: translateX(0);
  }
  
  .scroll-animate-scale {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity var(--animation-duration-slow) var(--animation-easing),
                transform var(--animation-duration-slow) var(--animation-easing);
  }
  
  .scroll-animate-scale.visible {
    opacity: 1;
    transform: scale(1);
  }
  
  /* Delay utilities for staggered animations */
  .delay-1 { animation-delay: 0.1s; }
  .delay-2 { animation-delay: 0.2s; }
  .delay-3 { animation-delay: 0.3s; }
  .delay-4 { animation-delay: 0.4s; }
  .delay-5 { animation-delay: 0.5s; }
  
  /* Animation performance optimizations */
  .animate *,
  .fade-in,
  .fade-in-up,
  .fade-in-down,
  .fade-in-left,
  .fade-in-right,
  .zoom-in,
  .slide-up,
  .slide-down {
    will-change: transform, opacity;
  }
  
  /* Reduce motion for accessibility */
  @media (prefers-reduced-motion: reduce) {
    *,
    ::before,
    ::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
/* === FILTRO PRODOTTI - STILE PERSONALIZZATO === */

/* Contenitore principale filtro */
.wpfMainWrapper {
    font-family: var(--e-global-typography-text-font-family) !important;
    color: var(--e-global-color-secondary) !important;
}

/* Wrapper singoli filtri */
.wpfFilterWrapper {
    margin-bottom: 20px !important;
}

/* === FILTRO PREZZO — NUOVO STILE === */

/* Linea slider (più sottile) */
.wpfPriceFilterRange.ui-slider {
    background: transparent !important; /* niente colore pieno */
    border: 1px solid var(--e-global-color-d67569a) !important; /* bordo verde */
    height: 2px !important; /* linea più sottile */
    border-radius: 3px !important;
    margin-bottom: 15px !important;
}

/* Barra attiva (solo bordo, no riempimento) */
.wpfPriceFilterRange .ui-slider-range {
    background: transparent !important;
    border-top: 1px solid var(--e-global-color-d67569a) !important;
    border-bottom: 1px solid var(--e-global-color-d67569a) !important;
}

/* Pallini (non pieni, solo bordo grigio) */
.ui-slider.ui-widget-content .ui-slider-handle{    background: white !important; /* vuoti */
    border: 0px solid var(--e-global-color-d67569a) !important; 
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: none !important;
    top: -7px !important; /* riallinea il pallino alla linea */
}

.wpfPriceFilterRange .ui-slider-handle:hover,
.wpfPriceFilterRange .ui-slider-handle:focus {
    background: var(--e-global-color-d67569a) !important; /* leggero accento */
    
}

.ui-slider.ui-widget-content .ui-slider-handle{
    border: 1px solid var(--e-global-color-d67569a) !important; /* bordo verde */
}


/* Input prezzo */
.wpfPriceInputs {
    display: flex;
    align-items: center;
    gap: 8px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    color: var(--e-global-color-secondary) !important;
}

.wpfCurrencySymbol {
    font-weight: 500 !important;
    color: var(--e-global-color-secondary) !important;
}

.wpfPriceRangeField {
    border: 1px solid var(--e-global-color-d67569a) !important;
    background: #fff !important;
    padding: 6px 10px !important;
    border-radius: 4px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    color: var(--e-global-color-secondary) !important;
}

.wpfFilterDelimeter {
    color: var(--e-global-color-text) !important;
}

/* === DROPDOWN CATEGORIE E MARCA === */

/* Select dropdown */
.wpfCheckboxHier select {
    width: 100% !important;
    padding: 12px 16px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    color: var(--e-global-color-secondary) !important;
    background: #fff !important;
    border: 1px solid var(--e-global-color-d67569a) !important;
    border-radius: 0px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.wpfCheckboxHier select:hover {
    border-color: var(--e-global-color-primary) !important;
}

.wpfCheckboxHier select:focus {
    outline: none !important;
    border-color: var(--e-global-color-primary) !important;
    box-shadow: 0 0 0 3px rgba(72, 169, 77, 0.1) !important;
}

/* Opzioni dropdown */
.wpfCheckboxHier select option {
    padding: 10px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    color: var(--e-global-color-secondary) !important;
}

.wpfCheckboxHier select option:first-child {
    color: var(--e-global-color-text) !important;
}

/* === PULSANTE FILTRO === */

.wpfFilterButtons {
    margin-top: 20px !important;
}

.wpfFilterButton {
    width: 80% !important;
    padding: 14px 24px !important;
    font-family: var(--e-global-typography-accent-font-family) !important;
    font-size: var(--e-global-typography-ea15545-font-size) !important;
    font-weight: var(--e-global-typography-ea15545-font-weight) !important;
    text-transform: var(--e-global-typography-ea15545-text-transform) !important;
    letter-spacing: var(--e-global-typography-ea15545-letter-spacing) !important;
    color: #fff !important;
    background: var(--e-global-color-primary) !important;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.wpfFilterButton:hover {
    background: var(--e-global-color-accent) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(72, 169, 77, 0.3) !important;
}

.wpfFilterButton:active {
    transform: translateY(0) !important;
}

/* === LOADER === */

.wpfLoaderLayout {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(255, 255, 255, 0.9) !important;
    display: flex;
    align-items: center !important;
    justify-content: center !important;
    z-index: 100 !important;
}

.wpfLoaderLayout i {
    color: var(--e-global-color-primary) !important;
}

.woobewoo-filter-loader.spinner {
    border-color: var(--e-global-color-89d7ca9) !important;
    border-top-color: var(--e-global-color-primary) !important;
}

/* === RESPONSIVE === */

@media (max-width: 768px) {
    .wpfFilterButton {
        padding: 12px 20px !important;
        font-size: 13px !important;
    }
    
    .wpfCheckboxHier select {
        padding: 10px 14px !important;
        font-size: 15px !important;
    }
}


/* ========================================== */
/* === YITH WOOCOMMERCE WISHLIST === */
/* ========================================== */

/* === CONTENITORE PRINCIPALE === */
.yith-wcwl-form.wishlist-fragment {
    font-family: var(--e-global-typography-text-font-family) !important;
    color: var(--e-global-color-secondary) !important;
}

/* === TITOLO WISHLIST === */
.wishlist-title-container {
    margin-bottom: 30px !important;
}

.wishlist-title h2 {
    font-family: var(--e-global-typography-secondary-font-family) !important;
    font-size: var(--e-global-typography-secondary-font-size) !important;
    font-weight: var(--e-global-typography-secondary-font-weight) !important;
    color: var(--e-global-color-secondary) !important;
    margin: 0 !important;
}

/* Pulsante modifica titolo */
.wishlist-title .show-title-form {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: 14px !important;
    color: var(--e-global-color-text) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin-left: 15px !important;
    transition: color 0.3s ease !important;
}

.wishlist-title .show-title-form:hover {
    color: var(--e-global-color-primary) !important;
}

.wishlist-title .show-title-form svg {
    width: 16px !important;
    height: 16px !important;
}

/* Form modifica titolo */
.hidden-title-form {
    margin-top: 15px !important;
}

.hidden-title-form input[type="text"] {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    padding: 10px 15px !important;
    border: 1px solid var(--e-global-color-d67569a) !important;
    border-radius: 4px !important;
    color: var(--e-global-color-secondary) !important;
    width: 300px !important;
    max-width: 100% !important;
}

.edit-title-buttons a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 4px !important;
    margin-left: 8px !important;
    transition: all 0.3s ease !important;
}

.edit-title-buttons .save-title-form {
    background: var(--e-global-color-primary) !important;
    color: #fff !important;
}

.edit-title-buttons .save-title-form:hover {
    background: var(--e-global-color-accent) !important;
}

.edit-title-buttons .hide-title-form {
    background: var(--e-global-color-89d7ca9) !important;
    color: var(--e-global-color-secondary) !important;
}

.edit-title-buttons .hide-title-form:hover {
    background: #e74c3c !important;
    color: #fff !important;
}

/* ========================================== */
/* === VERSIONE DESKTOP - TABELLA === */
/* ========================================== */

.shop_table.wishlist_table:not(.mobile) {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #fff !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}

/* Header tabella desktop */
.shop_table.wishlist_table:not(.mobile) thead {
    background: var(--e-global-color-89d7ca9) !important;
}

.shop_table.wishlist_table:not(.mobile) thead th {
    font-family: var(--e-global-typography-accent-font-family) !important;
    font-size: var(--e-global-typography-ea15545-font-size) !important;
    font-weight: var(--e-global-typography-ea15545-font-weight) !important;
    text-transform: var(--e-global-typography-ea15545-text-transform) !important;
    letter-spacing: var(--e-global-typography-ea15545-letter-spacing) !important;
    color: var(--e-global-color-secondary) !important;
    padding: 16px 20px !important;
    border: none !important;
    text-align: left !important;
}

/* Celle tabella desktop */
.shop_table.wishlist_table:not(.mobile) tbody td {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    color: var(--e-global-color-secondary) !important;
    padding: 20px !important;
    border-bottom: 1px solid var(--e-global-color-89d7ca9) !important;
    vertical-align: middle !important;
}

.shop_table.wishlist_table:not(.mobile) tbody tr:last-child td {
    border-bottom: none !important;
}

/* Immagine prodotto desktop */
.shop_table.wishlist_table:not(.mobile) .product-thumbnail img {
    border-radius: 4px !important;
    max-width: 100px !important;
    height: auto !important;
}

/* ========================================== */
/* === VERSIONE MOBILE - LISTA === */
/* ========================================== */

.shop_table.wishlist_table.mobile {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shop_table.wishlist_table.mobile > li {
    background: #fff !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
    margin-bottom: 20px !important;
    overflow: hidden !important;
}

/* Item wrapper mobile */
.shop_table.wishlist_table.mobile .item-wrapper {
    display: flex !important;
    padding: 20px !important;
    gap: 15px !important;
}

/* Immagine prodotto mobile */
.shop_table.wishlist_table.mobile .product-thumbnail {
    flex-shrink: 0 !important;
}

.shop_table.wishlist_table.mobile .product-thumbnail img {
    border-radius: 4px !important;
    width: 100px !important;
    height: 100px !important;
    object-fit: cover !important;
}

/* Dettagli prodotto mobile */
.shop_table.wishlist_table.mobile .item-details {
    flex: 1 !important;
}

.shop_table.wishlist_table.mobile .product-name h3 {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--e-global-color-secondary) !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.4 !important;
}

.shop_table.wishlist_table.mobile .product-name a {
    color: var(--e-global-color-secondary) !important;
    text-decoration: none !important;
    transition: color 0.3s ease !important;
}

.shop_table.wishlist_table.mobile .product-name a:hover {
    color: var(--e-global-color-primary) !important;
}

/* Tabella dettagli mobile */
.shop_table.wishlist_table.mobile .item-details-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 10px !important;
}

.shop_table.wishlist_table.mobile .item-details-table td {
    padding: 5px 0 !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: 14px !important;
    border: none !important;
}

.shop_table.wishlist_table.mobile .item-details-table .label {
    color: var(--e-global-color-text) !important;
    font-weight: 500 !important;
    padding-right: 10px !important;
}

.shop_table.wishlist_table.mobile .item-details-table .value {
    color: var(--e-global-color-secondary) !important;
}

/* Additional info wrapper mobile */
.shop_table.wishlist_table.mobile .additional-info-wrapper {
    padding: 0 20px 20px 20px !important;
    border-top: 1px solid var(--e-global-color-89d7ca9) !important;
    padding-top: 15px !important;
}

.shop_table.wishlist_table.mobile .additional-info {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 15px !important;
}

.shop_table.wishlist_table.mobile .additional-info td {
    padding: 5px 0 !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: 14px !important;
    border: none !important;
}

.shop_table.wishlist_table.mobile .additional-info .label {
    color: var(--e-global-color-text) !important;
    font-weight: 500 !important;
    padding-right: 10px !important;
}

.shop_table.wishlist_table.mobile .additional-info .value {
    color: var(--e-global-color-secondary) !important;
} 

.select#wpfSortProducts
Specificità: (1,0,1)
 {
    width: 100% !important;
    padding: 12px 16px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    color: var(--e-global-color-secondary) !important;
    background: #fff !important;
    border: 1px solid var(--e-global-color-d67569a) !important;
    border-radius: 0px !important;
    cursor: pointer !important;
    transition: all 0.3s 
ease !important;
}











/* ========================================== */
/* === ELEMENTI COMUNI (DESKTOP E MOBILE) === */
/* ========================================== */

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
    z-index: 10!important;
}

/* Stato vuoto */
.shop_table.wishlist_table .wishlist-empty {
    text-align: center !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-1eae699-font-size) !important;
    color: var(--e-global-color-text) !important;
    padding: 60px 20px !important;
}

/* Prezzi */
.shop_table.wishlist_table .woocommerce-Price-amount {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-1eae699-font-size) !important;
    font-weight: 600 !important;
    color: var(--e-global-color-primary) !important;
}

.shop_table.wishlist_table del .woocommerce-Price-amount {
    color: var(--e-global-color-text) !important;
    font-weight: 400 !important;
}

.shop_table.wishlist_table ins {
    text-decoration: none !important;
}

/* Stato magazzino */
.shop_table.wishlist_table .wishlist-in-stock {
    color: var(--e-global-color-accent) !important;
    font-weight: 500 !important;
}

.shop_table.wishlist_table .wishlist-out-of-stock {
    color: #e74c3c !important;
    font-weight: 500 !important;
}

/* === PULSANTI AZIONE === */

/* Pulsante Aggiungi al carrello */
.shop_table.wishlist_table .add_to_cart,
.shop_table.wishlist_table .product-add-to-cart a {
    display: inline-block !important;
    padding: 12px 24px !important;
    font-family: var(--e-global-typography-accent-font-family) !important;
    font-size: var(--e-global-typography-ea15545-font-size) !important;
    font-weight: var(--e-global-typography-ea15545-font-weight) !important;
    text-transform: var(--e-global-typography-ea15545-text-transform) !important;
    letter-spacing: var(--e-global-typography-ea15545-letter-spacing) !important;
    color: #fff !important;
    background: var(--e-global-color-primary) !important;
    border: none !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
}

.shop_table.wishlist_table .add_to_cart:hover,
.shop_table.wishlist_table .product-add-to-cart a:hover {
    background: var(--e-global-color-accent) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(72, 169, 77, 0.3) !important;
}

/* Pulsante Rimuovi */
.shop_table.wishlist_table .product-remove {
    text-align: center !important;
    margin-top: 10px !important;
}

.shop_table.wishlist_table .product-remove a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 20px !important;
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: 14px !important;
    background: var(--e-global-color-89d7ca9) !important;
    border-radius: 4px !important;
    color: var(--e-global-color-secondary) !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    gap: 6px !important;
}

.shop_table.wishlist_table .product-remove a:hover {
    background: #e74c3c !important;
    color: #fff !important;
}

.shop_table.wishlist_table .product-remove i {
    font-size: 14px !important;
}

/* === FOOTER WISHLIST === */
.yith_wcwl_wishlist_footer {
    margin-top: 30px !important;
    padding-top: 20px !important;
    border-top: 1px solid var(--e-global-color-89d7ca9) !important;
}

/* === CONDIVISIONE SOCIAL === */
.yith-wcwl-share {
    display: none !important;
}

/* === LOADER - NO IMPORTANT per AJAX === */
.yith-wcwl-add-to-wishlist .ajax-loading,
.yith-wcwl-wishlistexistsbrowse .ajax-loading,
.yith-wcwl-wishlistaddedbrowse .ajax-loading {
    opacity: 0.6;
}

/* === MESSAGGI === */
.woocommerce-message,
.woocommerce-info {
    font-family: var(--e-global-typography-text-font-family) !important;
    font-size: var(--e-global-typography-text-font-size) !important;
    border-left-color: var(--e-global-color-primary) !important;
}

/* === RESPONSIVE FINALE === */
@media (max-width: 768px) {
    .wishlist-title h2 {
        font-size: 24px !important;
    }
    
    .hidden-title-form input[type="text"] {
        width: 100% !important;
    }
    
    .shop_table.wishlist_table.mobile .item-wrapper {
        flex-direction: column !important;
    }
    
    .shop_table.wishlist_table.mobile .product-thumbnail {
        text-align: center !important;
    }
    
    .shop_table.wishlist_table.mobile .product-thumbnail img {
        width: 120px !important;
        height: 120px !important;
    }
}

//Header

:root {
  --header-h: 80px; /* altezza header */
  --mm-z: 9999;
}

/* Contenitore globale dei pannelli */
#mm-panels {
  position: relative; /* rimane dentro l'header template */
  z-index: var(--mm-z);
}

/* Ogni pannello mega-menu */
.mm-panel {
  position: fixed;        /* overlay rispetto alla pagina */
  left: 0;
  top: var(--header-h);   /* subito sotto l’header fisso */
  width: 100vw;
  height: calc(100vh - var(--header-h));
  background: var(--e-global-color-primary, #fff);
  display: none;          /* nascosto di default */
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

/* Stato aperto */
.mm-panel.is-open {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

/* Backdrop (clic per chiudere) */
.mm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.28);
  backdrop-filter: blur(2px);
  z-index: calc(var(--mm-z) - 1);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.mm-open .mm-backdrop {
  opacity: 1;
  pointer-events: auto;
}

/* Header “sticky” sopra i pannelli */
header, .elementor-location-header {
  z-index: calc(var(--mm-z) + 1) !important;
}

/* Nav: cursore e stato attivo */
.has-mm > a {
  cursor: pointer;
}
.has-mm.mm-active > a {
  color: var(--e-global-color-accent);
}

/* Responsivo */
@media (max-width: 1024px) {
  .mm-panel {
    top: var(--header-h);
    height: calc(100dvh - var(--header-h));
  }
}



















/* PAGINA NEGOZI FIRENZE */

/* wrapper */
.zswap-wrap { 
  position: relative; 
}

/* TRIGGERS sempre sopra */
.zswap-wrap .zswap-triggers {
  position: relative;
  z-index: 200;
}

.zswap-wrap .zswap-trigger {
  position: relative;
  cursor: pointer;
  pointer-events: auto;
}

/* Overlay sul TRIGGER attivo */
.zswap-wrap .zswap-trigger::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #0B4714C7;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  border-radius: inherit;
}

.zswap-wrap .zswap-trigger.is-active::after {
  opacity: 1;
}

/* TARGET sotto ai trigger */
.zswap-wrap .zswap-targets {
  position: relative;
  z-index: 10;
}

.zswap-wrap .zswap-target {
  position: relative;
  pointer-events: none;
}

/* Target attivo cliccabile */
.zswap-wrap .zswap-target.is-top {
  pointer-events: auto;
}

.icona-meno svg{ 
    margin-top: 5px;
   }



  /* Add your custom styles here */

/* =========================================
   LOOP DEI PRODOTTI CON DIREZIONE ALTERNATA
   ========================================= */
@media (max-width: 767px){
  .elementor-loop-container > .e-loop-item .card-prodotto-row{
    flex-direction: column-reverse !important;
  }
}

/* =========================
   TABLET + DESKTOP
   Alternanza destra/sinistra
   ========================= */
@media (min-width: 768px){
  /* base (dispari): immagine + testo */
  .elementor-loop-container > .e-loop-item .card-prodotto-row{
    flex-direction: row !important;
  }

  /* pari: testo + immagine (invertito) */
  .elementor-loop-container > .e-loop-item:nth-of-type(even) .card-prodotto-row{
    flex-direction: row-reverse !important;
  }
}

