/* ==========================================================================
   1. CONFIGURAZIONE FONT VARIABILE (OPEN SANS)
   ========================================================================== */
@font-face {
  font-family: 'Open Sans Variable';
  src: 
    /* url('../fonts/OpenSans-VariableFont_wdth,wght.woff2') format('woff2-variations'), */
    url('../fonts/OpenSans-VariableFont_wdth,wght.ttf') format('truetype');
  font-weight: 300 800; /* Copre Light, Regular, Medium, Bold, ExtraBold */
  font-style: normal;
  font-display: swap;
}

/* 3. SOVRASCRIVI LA VARIABILE BASE DI PICOCSS */
:root {
  --font-family: 'Open Sans Variable', system-ui, -apple-system, sans-serif;
}

/* ==========================================================================
   1. CONFIGURAZIONE HEADER E NAV BAR
   ========================================================================== */
.header-full-gray {
  background-color: #2a2a2a;
  width: 100%;
}

/* Opzionale: allinea verticalmente il logo e il bottone se necessario */
.header-full-gray nav {
  padding: 0.5rem 0; 
}


/* Controllo altezza navbar */
.custom-nav {
  height: 60px;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* Controllo logo */
.logo-link {
  display: flex;
  align-items: center;
  height: 100%;
  /* padding: 0 !important; */
}

.logo-link img {
  height: 35px;
  width: auto;
  display: block;
}

/* Nuove regole per il link "Accedi" con Icona */
.nav-login-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem; 
  text-decoration: none;
  font-size: 1.15rem; 
  font-weight: 500; 
  color: #ffffff !important; 
  transition: opacity 0.2s ease; 
}

.nav-login-link:hover {
  color: #ffffff !important;
  opacity: 0.8; 
  text-decoration: none;
}

.nav-login-link svg {
  display: inline-block;
  vertical-align: middle;
  stroke: #ffffff !important; 
}

/* Gestione testo e icona per dispositivi Mobile */




/* ==========================================================================
   2. BANNER SCORREVOLE (JQUERY)
   ========================================================================== */
/* Rende il container del banner totalmente full-width */
.banner_container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ==========================================================================
   2. BANNER SCORREVOLE (JQUERY)
   ========================================================================== */
.banner {
  position: relative;
  width: 100%;
  height: 800px;
  overflow: hidden;
  border-radius: 0;
}

.banner .slide {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  z-index: 1;
}

.banner .slide.active {
  opacity: 1;
  z-index: 2;
}

.banner .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.banner-overlay {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.65);
  color: #ffffff;
  padding: 1.5rem;
  max-width: 50%;
  border-radius: var(--pico-border-radius);
  z-index: 3;
}

.banner-overlay h2, .banner-overlay p {
  color: #ffffff;
  margin-bottom: 0.5rem;
}

.banner-dots {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 4;
}

.banner-dots .dot {
  width: 12px;
  height: 12px;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.banner-dots .dot.active, 
.banner-dots .dot:hover {
  background-color: #ffffff;
  transform: scale(1.2);
}

/* ==========================================================================
   OTTIMIZZAZIONE MOBILE (SOTTO I 576PX)
   ========================================================================== */
@media (max-width: 576px) {
  .banner {
    height: 500px; /* Mantiene l'altezza del banner richiesta */
  }

  .banner .slide {
    display: block; /* Ripristina il comportamento nativo */
  }

  /* L'immagine torna a coprire l'intero sfondo del banner */
  .banner .slide img {
    height: 100% !important;
  }

  /* Il box si adatta al testo e si ancora alla base del banner */
  .banner-overlay {
    position: absolute;
    top: auto;
    bottom: 0; /* Ancorato al fondo */
    left: 0;
    transform: none;
    width: 100%;
    max-width: 100%;
    height: auto; /* Altezza automatica in base al testo */
    background-color: rgba(0, 0, 0, 0.75); /* Sfondo semitrasparente per non coprire del tutto la foto */
    padding: 1.2rem 1.2rem 2.5rem 1.2rem; /* Più spazio sotto per non sovrapporsi ai puntini */
    border-radius: 0;
  }

  .banner-overlay h2 {
    font-size: 1.3rem;
    margin-bottom: 0.3rem;
  }

  .banner-overlay p {
    font-size: 0.95rem;
    margin-bottom: 0; /* Rimuove margini extra inutili */
  }

  /* I puntini rimangono fissati in basso al centro, sopra il testo */
  .banner-dots {
    bottom: 8px;
    z-index: 5; /* Forza la visibilità sopra il box del testo */
  }
}
/* ==========================================================================
   3. ELEMENTI COMUNI DELLE COLONNE (ICONE E TITOLI)
   ========================================================================== */
.col-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 0.75rem;
}

.col-header h3 {
  margin: 0;
  color: #00A19A; /* Verde richiesto */
  font-weight: 300;        /* Imposta la variante LIGHT del font variabile */
  line-height: 1.2;        /* Ottimizza lo spazio tra le due righe del titolo */
}

.col-icon-svg {
  width: 64px;
  height: 64px;
  color: #00A19A; /* Rende gli SVG verdi */
  flex-shrink: 0;
  margin-top: 4px;         /* Allinea millimetricamente l'icona alla prima riga del titolo */
}


/* ==========================================================================
   4. PRIMO CONTENITORE (DUE COLONNE UGUALI CON ICONE)
   ========================================================================== */
@media (min-width: 768px) {
  .grid-separated {
    gap: 4rem; 
  }

  .grid-separated > div:first-child {
    border-right: 2px solid #00A19A;
    padding-right: 2rem;
  }

  .grid-separated > div:last-child {
    padding-left: 0;
  }
}

@media (max-width: 767px) {
  .col-box:first-child {
    margin-bottom: var(--pico-spacing);
  }
}


/* ==========================================================================
   5. SECONDO CONTENITORE (PROPORZIONI 2/3 E 1/3 CON IMMAGINE)
   ========================================================================== */
.spacing-block {
  margin-top: calc(var(--pico-spacing) * 2);
}

@media (min-width: 768px) {
  .grid-custom-proportions {
    display: grid;
    grid-template-columns: 2fr 1fr; /* 2 terzi e 1 terzo */
  }

  .grid-separated-v2 {
    gap: 4rem; 
  }

  .grid-separated-v2 > div:first-child {
    border-right: 2px solid #00A19A;
    padding-right: 2rem;
  }

  .grid-separated-v2 > div:last-child {
    padding-left: 0;
  }
}

@media (max-width: 767px) {
  .grid-custom-proportions {
    display: flex;
    flex-direction: column;
  }
  
  .grid-custom-proportions .col-box {
    margin-bottom: var(--pico-spacing);
  }
}

/* Contenitore dell'immagine: attiviamo flexbox per centrare il contenuto */
.image-box {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center; /* Centra orizzontalmente */
  align-items: center;     /* Centra verticalmente */
}

/* Regole per l'immagine */
.col-side-img {
  width: 100%;
  height: 100%;
  max-width: 100%;         /* Impedisce all'immagine di uscire dalla colonna */
  max-height: 100%;        /* Impedisce di allungarsi oltre l'altezza del testo a sinistra */
  object-fit: contain;     /* Mostra SEMPRE l'immagine per intero senza tagliarla */
  border-radius: var(--pico-border-radius);
}

/* Ottimizzazione per Mobile (schermi sotto i 768px) */
@media (max-width: 767px) {
  .col-side-img {
    height: auto;          /* Su mobile evita altezze vuote artificiali */
    min-height: auto;      /* Rimuove vincoli rigidi sui telefoni */
  }
}

/* Stilizzazione della lista numerata */
.custom-features-list {
  list-style: none; /* Rimuoviamo il numero standard del browser */
  counter-reset: pico-counter; /* Attiviamo un contatore personalizzato */
  padding-left: 0 !important;
  margin: 0;
}

.custom-features-list li {
  position: relative;
  padding-left: 2.5rem; /* Spazio a sinistra per far posto al numero */
  margin-bottom: 1rem; /* Distanza tra un punto e l'altro */
  line-height: 1.5;
  font-size: 1.05rem; /* Leggermente più leggibile dello standard */
  list-style-type: none; /* Sicurezza per reset Pico.css */
}

/* Stilizzazione del Numero Personalizzato (Badge) */
.custom-features-list li::before {
  counter-increment: pico-counter;
  content: counter(pico-counter); /* Genera il numero progressivo */
  position: absolute;
  left: 0;
  top: 2px; /* Allinea il numero alla prima riga di testo */
  
  /* Aspetto grafico del cerchietto numerato */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background-color: rgba(0, 161, 154, 0.1); /* Colore #00A19A ma trasparente al 10% */
  color: #00A19A; /* Stesso colore del separatore verticale */
  font-weight: 700;
  font-size: 0.9rem;
  border-radius: 50%; /* Lo rende un cerchio perfetto */
}

/* Evidenzia leggermente i termini principali all'inizio di ogni punto */
.custom-features-list li strong {
  color: var(--pico-heading-color); /* Si adatta alla modalità Light/Dark di Pico */
}



/* ==========================================================================
   SECTION KPI (SFONDO VERDE #95C11F E IMMAGINE)
   ========================================================================== */

/* Contenitore esterno a tutta larghezza */
.kpi-section-fluid {
  background-color: #95C11F !important;
  padding: 4rem 0; /* Spazio interno sopra e sotto */
  margin-top: calc(var(--pico-spacing) * 2);
  background-image: url('../images/kpi_bg.png'); /* Inserisci il percorso della tua immagine */
  background-repeat: no-repeat;
  background-position: top center;
  background-size: auto; /* Mantiene le dimensioni reali o usa 'contain' se necessario */
}

/* Contenitore interno con l'immagine di sfondo */
.kpi-section-inner {
  background-color: transparent !important;
  padding-bottom: 2rem; /* Spazio sul fondo per non coprire l'immagine con il testo */
}

/* Griglia responsive per gli 8 KPI */
.kpi-grid {
  display: grid;
  gap: 2rem;
  text-align: center;
}

/* Distribuzione colonne basata sullo schermo */
@media (min-width: 992px) {
  .kpi-grid {
    grid-template-columns: repeat(4, 1fr); /* 4 colonne su desktop (2 righe totali) */
  }
}
@media (min-width: 576px) and (max-width: 991px) {
  .kpi-grid {
    grid-template-columns: repeat(2, 1fr); /* 2 colonne su tablet */
  }
}
@media (max-width: 575px) {
  .kpi-grid {
    grid-template-columns: 1fr; /* 1 colonna sui telefoni */
  }
}

/* Struttura della singola scheda KPI */
.kpi-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #ffffff !important; /* Forza il testo bianco */
}

/* Il numero (Font grande) */
.kpi-number {
  font-family: var(--font-family);
  font-size: 3.5rem; /* Dimensione del numero principale */
  font-weight: 800;  /* Extra Bold per dare risalto */
  line-height: 1;
  margin-bottom: 0.5rem;
}

/* La descrizione (Esattamente 1/4 della dimensione del numero) */
.kpi-label {
  font-family: var(--font-family);
  font-size: 0.875rem; /* 3.5rem diviso 4 = 0.875rem */
  font-weight: 300;    /* Mantiene lo stile Open Sans Light */
  line-height: 1.3;
  max-width: 200px;    /* Evita righe troppo lunghe e sgraziate */
}


/* Contenitore per tenere uniti numero e simbolo sulla stessa riga */
.kpi-number-container {
  display: flex;
  align-items: baseline;
  justify-content: center;
  font-family: var(--font-family);
  font-size: 3.5rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 0.5rem;
  color: #ffffff !important;
  
  /* Gestisce il fade-in dell'intero blocco numerico */
  opacity: 0;
  transform: translateY(15px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}

/* Attivazione del fade-in */
.kpi-number-container.fade-in-active {
  opacity: 1;
  transform: translateY(0);
}

/* Stile per i simboli e il testo statico */
.kpi-symbol, .kpi-number-static {
  font-family: var(--font-family);
  font-weight: 800;
  color: #ffffff !important;
}



/* Contenitore principale Fluid con lo stesso sfondo dell'header */
.footer-full-gray {
  background-color: #2a2a2a;
  width: 100%;
  margin-top: calc(var(--pico-spacing) * 2);
}

/* Controllo e allineamento della navbar del footer */
.custom-footer-nav {
  min-height: 140px; 
  margin-bottom: 0 !important;
  padding: 1rem 0 !important;
  display: flex;
  justify-content: space-between;
  align-items: center; /* Centra perfettamente in verticale entrambi i lati */
}

/* Reset Pico.css per i nodi della lista del footer */
.custom-footer-nav ul,
.custom-footer-nav li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  display: flex;
  align-items: center;
}

/* Allineamento e gestione del link/immagine di sinistra */
.footer-logo-left-link {
  display: flex;
  align-items: center;
  height: 100%;
}

.footer-logo-left-link img {
  height: 40px; /* Altezza standard su Desktop */
  width: auto;
  display: block;
  margin: 0 !important;
}

/* Allineamento e gestione del link/immagine di destra (esterno) */
.footer-logo-right-link {
  display: flex;
  align-items: center;
  height: 100%;
  transition: opacity 0.2s ease;
}

.footer-logo-right-link:hover {
  opacity: 0.8;
}

.footer-logo-right-link img {
  height: 118px; /* Altezza standard su Desktop */
  width: auto;
  display: block;
  margin: 0 !important;
}

/* Ottimizzazione Responsive per Mobile: NO Incolonnamento, SI Ridimensionamento */
@media (max-width: 576px) {
  .custom-footer-nav {
    min-height: auto;
    padding: 1.5rem 0 !important;
  }

  /* Rimpicciolisce proporzionalmente l'immagine di sinistra */
  .footer-logo-left-link img {
    height: 7vw; /* Si adatta alla larghezza dello schermo mobile */
    min-height: 25px; /* Impedisce che diventi troppo microscopica */
    max-height: 40px;
  }

  /* Rimpicciolisce proporzionalmente l'immagine di destra */
  .footer-logo-right-link img {
    height: 20vw; /* Si adatta alla larghezza dello schermo mobile */
    min-height: 70px; /* Impedisce che diventi troppo piccola per essere cliccata */
    max-height: 118px;
  }
}
