body {
        font-family: 'Open Sans', sans-serif;
        background-color: #0B0D10;
        color: white;
        margin: 0;
        padding: 0;
        line-height: 1.6;
    }

    h1, h2, h3, h4, h5, h6 {
        font-family: 'Open Sans', sans-serif;
        font-weight: 700;
    }

    a, li {
        font-family: 'Open Sans', sans-serif;
        font-weight: 400;
    }

    /* 2. LAYOUT MODERNO (GRIGLIA) */
    .boxes {
        display: grid;
        grid-template-columns: 1fr 1.2fr;
        gap: 0;
        max-width: 1100px;
        margin: 80px auto;
        padding: 0 20px;
        align-items: center;
    }

    /* 3. DEFINIZIONE BOX GENERICA (Pulita dai conflitti) */
    .box {
        background-color: #1A1D21;
        border-radius: 20px;
        padding: 40px 30px;
        display: flex;
        flex-direction: column;
        align-items: center;
        box-shadow: 0 10px 30px rgba(0,0,0,0.5);
        border: 1px solid #333;
    }

    /* 4. BOX SINISTRA (Informativo - Booklet) */
    #box.box {
        z-index: 2;
        transform: translateX(40px); /* Effetto sovrapposizione moderna */
        box-shadow: 20px 20px 60px rgba(0,0,0,0.5);
    }

    .textContent {
        background-color: transparent;
        padding: 0;
        width: 100%;
    }

    .textContent p {
        position: relative;
        padding-left: 20px;
        border-left: 2px solid #333;
        margin-bottom: 25px;
        transition: border-color 0.3s;
        text-align: left;
    }

    .textContent p:hover {
        border-left-color: #ff6666;
        transform: translateX(5px);
        transition: 0.3s ease;
    }

    /* 5. BOX DESTRA (Form) */
    .box:not(#box) {
        background-color: #0B0D10; /* Fondo più scuro per contrasto */
        padding: 60px 50px;
        z-index: 1;
        border: 1px solid #ff6666;
        box-shadow: 0 0 40px rgba(255, 102, 102, 0.05);
    }

    /* Titolo con linea decorativa */
    .box h2 {
        align-self: flex-start;
        font-size: 1.8rem;
        margin-bottom: 35px;
        position: relative;
    }

    .box h2::after {
        content: '';
        position: absolute;
        bottom: -10px;
        left: 0;
        width: 50px;
        height: 3px;
        background: #ff6666;
    }

/* 1. Contenitore */
/* --- OTTIMIZZAZIONE MAPPA: PIÙ BASSA E MENO SPAZIO GRIGIO --- */

.boxes:has(#boxMap) {
    max-width: 1250px;
    grid-template-columns: 1.3fr 1fr;
    gap: 0;
    align-items: center; /* Centra verticalmente i due box se hanno altezze diverse */
}

/* 2. Il Box della Mappa (Sinistra) - PIÙ COMPATTO */
#boxMap.box {
    background-color: #1A1D21 !important;
    /* Riduciamo il padding per togliere il grigio attorno alla mappa */
    padding: 20px !important;

    z-index: 2;
    transform: translateX(30px) !important;

    border: 1px solid #333 !important;
    border-radius: 20px;
    box-shadow: 10px 0 30px rgba(0,0,0,0.5);

    /* Impedisce al box di allungarsi inutilmente */
    flex-grow: 0;
}

#map {
    width: 100%;
    /* Altezza ridotta per rendere il contenitore più basso */
    height: 380px;
    border-radius: 12px;
    border: 1px solid #000;
}

/* 3. Il Box del Form (Destra) */
.boxes:has(#boxMap) .box:not(#boxMap) {
    background-color: #0B0D10 !important;
    z-index: 1;
    transform: translateX(-10px) !important;

    /* Manteniamo il padding per l'effetto incastro */
    padding: 50px 40px 50px 60px !important;
    border: 1px solid #ff6666 !important;
    border-radius: 20px;
}

/* 4. Titoli - Riduciamo il margine inferiore per compattare */
#boxMap .title {
            display: flex;
            align-items: center;   /* Allinea perfettamente icona e testo */
            gap: 12px;
            font-size: 2rem;
            margin-bottom: 30px;
            position: relative;
            margin-left: 10px;
            color: white;
        }

.icon-point{

   width: 32px;           /* Dimensione della puntina */
    height: 32px;
    fill: #ff6666;         /* Colore rosso del tuo brand */
    flex-shrink: 0;        /* Impedisce all'icona di rimpicciolirsi */

}

.title::after {
           content: '';
           position: absolute;
           bottom: -10px;
           left: 0;
           width: 100px;
           height: 3px;
           background: #ff6666;
}

/* 5. Input e Form Groups */
.boxes:has(#boxMap) .form-group {
    width: 100%;
    margin-bottom: 15px;
}

.boxes:has(#boxMap) input,
.boxes:has(#boxMap) textarea {
    width: 100% !important;
}

    /* 6. FORM E FLOATING LABELS */
    #emailForm {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .form-group {
        position: relative;
        margin-bottom: 20px;
        width: 100%;
        max-width: 450px;
    }

    .box .form-group label {
        position: absolute;
        top: 20px;
        left: 15px;
        color: #888;
        pointer-events: none;
        transition: 0.2s ease all;
        font-weight: 700;
    }

    .box .form-group input,
    .box .form-group textarea {
        width: 100%;
        padding: 20px 20px 10px 20px;
        margin: 7px 0;
        border-radius: 5px;
        box-sizing: border-box;
        background-color: #0B0D10;
        border: 1px solid #333;
        outline: none;
        color: white;
    }

    /* Correzione colore sfondo label quando sale */
    .box .form-group input:focus ~ label,
    .box .form-group input:not(:placeholder-shown) ~ label,
    .box .form-group textarea:focus ~ label,
    .box .form-group textarea:not(:placeholder-shown) ~ label {
        top: -10px;
        left: 15px;
        font-size: 12px;
        background: #0B0D10; /* Uguale allo sfondo del box */
        padding: 0 8px;
        color: #ff6666;
    }

    /* 7. BOTTONI E ICONE */
    .box button {
        width: 60%;
        padding: 15px;
        margin-top: 20px;
        border: none;
        border-radius: 5px;
        background-color: #ff6666;
        color: white;
        font-size: 18px;
        font-weight: bold;
        cursor: pointer;
        transition: 0.5s;
    }

    .box button:hover{

    background: #e65555;
    color: white;
     transform: scale(1.1);
    }


.side-icon-container {
    position: absolute;
    /* 1. Incollate alla destra del body */
    right: 50px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 30px;
    z-index: 100;
}

/* --- FIX FONDAMENTALE PER NON FARLE FINIRE SOPRA LA MAPPA --- */
@media (max-width: 1400px) {
    .side-icon-container {
        /* 2. Quando lo schermo si stringe, le allontaniamo ancora di più
           o riduciamo la loro dimensione per salvare spazio */
        right: 10px;
        transform: translateY(-50%) scale(0.8);
    }
}

/* 3. Se lo schermo è così piccolo che toccherebbero comunque la mappa (es. 1250px)
      le spostiamo SOTTO il contenuto per pulizia */
@media (max-width: 1250px) {
    .side-icon-container {
        position: relative; /* Perdono la posizione assoluta a destra */
        right: auto;
        left: 0;
        top: 0;
        margin: 40px auto; /* Centrate sotto la mappa */
        flex-direction: row; /* Diventano orizzontali */
        justify-content: center;
        transform: none;
    }
}

.icon-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}

.icon {
    width: 80px;
    height: auto;
    filter: invert(1);
    opacity: 0.6;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
}

.icon:hover {
    opacity: 1;
    transform: scale(1.2) translateX(-15px);
    /* 2. COLORE PIÙ ROSSO: Modificato hue-rotate e saturazione per eliminare l'arancione */
    filter: invert(30%) sepia(100%) saturate(5000%) hue-rotate(350deg) brightness(90%) contrast(110%)
            drop-shadow(0 0 15px rgba(255, 0, 0, 0.8));
}










