/* ------------------------------------------- */
/* 1. Base e Variabili: Dark Mode              */
/* ------------------------------------------- */
:root {
    /* Colori nautici/dark mode */
    --color-primary: #1e90ff; /* Blu brillante */
    --color-secondary: #00bcd4; /* Azzurro Ciano */
    --color-background: #121212; 
    --color-surface: #1e1e1e; 
    --color-text: #e0e0e0; 
    --color-text-light: #8f8f8f; 
    --color-accent: #009688; /* Verde Acqua Scuro */
    
    --spacing-unit: 1rem;
    --header-height: 5rem;
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-background);
    padding-top: var(--header-height); 
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.3s;
}

a:hover {
    color: var(--color-accent);
}

h1, h2, h3 {
    line-height: 1.2;
    margin-bottom: var(--spacing-unit);
    color: var(--color-text);
}

ul {
    list-style: none;
}

hr {
    border: none;
    height: 1px;
    background-color: var(--color-surface);
    margin: 4rem 0;
}

/* ------------------------------------------- */
/* 2. Header Fisso e Navigazione (Hamburger)   */
/* ------------------------------------------- */

.main-header {
    position: fixed; 
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background-color: var(--color-surface); 
    color: var(--color-text);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 var(--spacing-unit);
    z-index: 1000; 
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5); 
}

/* Stile per il link contenitore Logo + Testo */
.main-header .logo a {
    display: flex; /* Abilita Flexbox */
    align-items: center; /* Centra verticalmente gli elementi (immagine e testo) */
    text-decoration: none; 
    color: var(--color-text); /* Assicura che il testo sia del colore corretto */
}

/* Stile per l'Immagine */
.logo-img {
    height: 4rem; 
    width: auto;
    display: block;
    margin-right: 0.5rem; /* Spazio tra l'icona e il testo */
}

/* Stile per il Testo SRN */
.logo-text {
    font-size: 3rem;
    font-weight: bold;
    color: var(--color-secondary); /* Usa il colore secondario per risalto */
    line-height: 1; /* Assicura che sia allineato bene con l'immagine */
}

.main-nav {
    display: none; 
    position: absolute;
    top: var(--header-height); 
    left: 0;
    width: 100%;
    background-color: var(--color-surface);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);
}

.main-nav.is-open {
    display: block;
}

.nav-list {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-unit) 0;
    text-align: center;
}

.nav-list li a {
    display: block;
    padding: 0.75rem var(--spacing-unit);
    color: var(--color-text);
}

.nav-list li a:hover, .nav-list li a:focus {
    background-color: var(--color-primary); 
    color: var(--color-background); 
}

.menu-toggle {
    background: transparent;
    border: none;
    color: var(--color-text);
    font-size: 2rem;
    cursor: pointer;
    padding: 0.5rem;
    line-height: 1; 
}


/* ------------------------------------------- */
/* 3. Layout Responsivo - Sezioni Contenuto    */
/* ------------------------------------------- */

main {
    padding: var(--spacing-unit);
    max-width: 1200px;
    margin: 0 auto;
}

.hero {
    padding: 2.5rem var(--spacing-unit);
    text-align: center;
    background-color: var(--color-surface); /* Superficie più chiara dello sfondo */
    border-radius: 8px;
    margin-bottom: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    
    /* NUOVE REGOLE DI INTERAZIONE HERO */
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}

.hero:hover {
    transform: translateY(-2px); /* Sollevamento molto sottile */
    /* NUOVA OMBRA: Più definita, uniforme */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5); 
}

.hero h1 {
    font-size: 2.5rem; /* Rende il titolo GRANDE */
    color: var(--color-primary);
    margin-bottom: 0.5rem;
}

.hero-subtitle {
    font-size: 1.4rem; /* Dimensione adeguata per un sottotitolo */
    color: var(--color-text);
    font-weight: 300; 
    margin-bottom: 2rem;
}

.lead {
    font-size: 1.15rem;
    margin-bottom: 1.5rem;
    color: var(--color-text-light);
}

/* Contenitore e centratura per il logo Hero */
.hero-logo-container {
    text-align: center;
    margin-bottom: 0.5rem;
}

/* REGOLA SPECIFICA: Dimensionamento del logo nella HERO SECTION */
.hero-logo-img {
    /* Dimensioni maggiori, ma limitate a 200px (Mobile) */
    max-width: 300px; 
    height: auto;
}

@media (min-width: 768px) {
    /* Dimensioni leggermente maggiori su Desktop */
    .hero-logo-img {
        max-width: 400px; 
    }
}

.hero-image-container img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); 
    margin-top: var(--spacing-unit);
    border: 1px solid var(--color-primary); 
    cursor: zoom-in; 
}

.content-section {
    padding: 2rem 0;
}

.section-title {
    text-align: center;
    color: var(--color-primary);
    margin-bottom: 3rem;
    font-size: 2rem;
}

.feature-block {
    margin-bottom: 3rem;
    padding: 1.5rem;
    border-left: 5px solid var(--color-accent); /* Bordo accentato */
    background-color: var(--color-surface);
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    
    /* NUOVE REGOLE DI INTERAZIONE (COERENZA) */
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}

.feature-block:hover {
    transform: translateY(-3px); /* Sollevamento sottile */
    /* NUOVA OMBRA: Scuro con leggero bagliore accentato (Verde Acqua) */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5), 0 0 1px 1px rgba(0, 150, 136, 0.1); 
}

.feature-block ul {
    margin-left: 1.5rem;
    list-style: disc; 
}

.feature-block li {
    margin-bottom: 0.5rem;
}

.feature-block li strong {
    color: var(--color-primary);
}


.image-gallery {
    display: flex;
    flex-wrap: wrap; 
    gap: 20px; 
    margin-top: 1.5rem;
    justify-content: center;
}

/* REGOLA RISTRUTTURATA PER RIDURRE LE IMMAGINI (MOBILE-FIRST) */
.image-gallery img {
    /* MOBILE: Imposta un'altezza massima per ridurre l'impatto visivo */
    max-height: 250px; 
    width: auto;
    object-fit: contain;
    
    /* Regole generali */
    flex: 1 1 100%; 
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    transition: transform 0.2s;
    border: 1px solid var(--color-surface); 
    cursor: zoom-in; 
}

.grid-features {
    display: flex;
    flex-direction: column; 
    gap: 20px;
}

.feature-card {
    padding: 1.5rem;
    background-color: var(--color-surface);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

.feature-card h3 {
    color: var(--color-primary); /* ALLINEATO: Usa il blu primario per coerenza */
}

/* Stile per Tabelle di Dati */
.table-container {
    margin-top: 2rem;
    padding: 1rem;
    background-color: var(--color-surface);
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    overflow-x: auto; 
}

.table-container h4 {
    color: var(--color-primary); /* ALLINEATO: Usa il blu primario per coerenza */
    margin-bottom: 1rem;
}

.data-table {
    width: 100%;
    min-width: 500px; 
    border-collapse: collapse; 
    font-size: 0.9rem;
    text-align: left;
}

.data-table th, .data-table td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--color-background); 
}

.data-table th {
    background-color: var(--color-background);
    color: var(--color-text-light);
    font-weight: 600;
    text-transform: uppercase;
}

.data-table td {
    background-color: var(--color-surface);
}

.data-table tbody tr:hover {
    background-color: #2a2a2a; 
}

.action-icon {
    margin-right: 0.5rem;
    cursor: pointer;
    font-size: 1.1rem;
    color: var(--color-primary);
}


/* Footer */
.main-footer {
    text-align: center;
    padding: 2rem var(--spacing-unit);
    background-color: var(--color-surface);
    color: var(--color-text-light);
    margin-top: 2rem;
    font-size: 0.9rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Stile aggiuntivo per rendere le Feature Card interattive */
.feature-card {
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
    cursor: default; 
}

/* SOSTITUISCI QUESTA REGOLA per un bagliore più forte, blu/freddo e orientato */
.feature-card:hover {
    transform: translateY(-5px); 
    
    /* OMBRA FINALE: Blu freddo, forte, e orientata */
    box-shadow: 
        /* 1. Ombra di sollevamento principale (verso il basso) */
        0 10px 30px rgba(0, 0, 0, 0.9), 
        /* 2. Bagliore blu/freddo e intenso (dal colore primario) */
        0 0 20px rgba(30, 144, 255, 0.4); 
}

.feature-card ul {
    list-style: disc; /* Usare il disco standard nelle schede */
    margin-left: 1.25rem;
    padding-top: 0.5rem;
}

.feature-card ul li {
    margin-bottom: 0.75rem;
}

/* ------------------------------------------- */
/* 4. Media Query: Responsività (Desktop)      */
/* ------------------------------------------- */

@media (min-width: 500px) {
    /* Regola per l'immagine singola (IMG_4167.PNG) - Rimpicciolita */
    .feature-block .image-gallery:has(img:only-child) img {
        max-width: 50%; /* Riduci la larghezza al 50% */
        flex: unset; 
        margin-left: auto; 
        margin-right: auto;
    }
}

@media (min-width: 768px) {
    
    /* Header/Navigazione */
    .main-header {
        padding: 0 2rem;
    }
    
    .menu-toggle {
        display: none; 
    }

    .main-nav {
        display: block; 
        position: static;
        width: auto;
        box-shadow: none;
    }

    .nav-list {
        flex-direction: row;
        gap: 1.5rem;
        padding: 0;
    }

    .nav-list li a:hover, .nav-list li a:focus {
         background-color: transparent;
         color: var(--color-accent);
    }
    
    /* Tipografia Hero */
    .hero h1 {
        font-size: 3.5rem; 
    }
    .hero-subtitle {
        font-size: 1.8rem;
    }

    /* Regole Galleria Immagini (Thumbnail View) */
    .image-gallery img {
        /* Ritorno alla flessibilità di altezza e larghezza per il layout a colonne */
        max-height: none; 
        width: 100%;
        
        /* Aumento della larghezza massima visiva per una migliore leggibilità */
        max-width: 450px; /* Aumentato da 350px a 450px */
    }
    
    /* Layout a 2 Colonne (Generale) */
    .image-gallery img {
        flex: 1 1 calc(50% - 10px); 
    }

    /* Layout a 3 Colonne (Override per Sezione 1) */
    #gestione-dati .feature-block .image-gallery img {
         flex: 1 1 calc(33.333% - 14px); 
         /* Rimuoviamo il max-width qui, lasciando che la regola generale gestisca la dimensione */
    }
    
    /* Layout per le Feature Card (Sezione 3) - 3 colonne orizzontali */
    .grid-features {
        flex-direction: row; 
    }
    
    .feature-card {
        flex: 1; 
    }

    main {
        padding: 2rem;
    }
}

/* ------------------------------------------- */
/* 5. Componente Lightbox/Zoom Overlay         */
/* ------------------------------------------- */

.lightbox-overlay {
    display: none; 
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95); 
    z-index: 2000; 
    justify-content: center;
    align-items: center;
    cursor: zoom-out;
}

.lightbox-overlay.is-active {
    display: flex;
}

.lightbox-content {
    max-width: 90%;
    max-height: 90%;
    overflow: auto; 
}

.lightbox-content img {
    display: block;
    width: auto;
    max-height: 90vh; 
    max-width: 90vw; 
    object-fit: contain;
    border: 3px solid var(--color-primary);
    box-shadow: 0 0 30px rgba(30, 144, 255, 0.5); 
}