/* Stili per il video di sfondo */
#bg-video { position: fixed; right: 0; bottom: 0; min-width: 100%; min-height: 100%; z-index: -2; object-fit: cover; }

/* Stili Generali del Corpo della Pagina */
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; margin: 0; padding: 20px; position: relative; }

/* Overlay bianco trasparente sopra il video */
body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.9); z-index: -1; }

/* Contenitore Principale con Effetto Vetro */
.container { max-width: 800px; margin: 20px auto; background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); padding: 30px; border-radius: 15px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.2); }

/* Stili Titoli e Testi */
h1 { color: #1a237e; text-align: center; margin-top: 0; margin-bottom: 10px; }
h2, h3 { color: #2c3e50; border-bottom: 2px solid rgba(0, 0, 0, 0.1); padding-bottom: 10px; margin-top: 30px; }
p { text-align: center; color: #444; margin-bottom: 25px; }

/* --- NUOVA STRUTTURA A COLONNE PER IL FORM --- */
.form-columns {
    display: flex;
    gap: 20px; /* Spazio tra le colonne */
    margin-bottom: 20px;
}
.form-column {
    flex: 1; /* Le colonne si dividono lo spazio equamente */
    min-width: 0; /* Previene problemi di overflow con flexbox */
}

/* Stili generici per i fieldset (rimangono validi) */
fieldset { border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 5px; padding: 20px; margin: 0; }
legend { font-weight: bold; color: #3f51b5; padding: 0 10px; }

/* Stili Campi del Form */
label { display: block; margin-top: 15px; margin-bottom: 5px; font-weight: 600; color: #333; }
input[type="number"], input[type="text"], input[type="tel"], input[type="email"], select { width: 100%; padding: 12px; border: 1px solid #ccc; background-color: rgba(255, 255, 255, 0.7); border-radius: 4px; box-sizing: border-box; font-size: 16px; }

/* Stili Pulsanti e Sezioni Nascoste */
button { display: block; width: 100%; padding: 15px; border: none; border-radius: 5px; background-color: #3f51b5; color: white; font-size: 18px; font-weight: bold; cursor: pointer; margin-top: 20px; transition: background-color 0.3s ease; }
button:hover { background-color: #303f9f; }
#consultation-btn { background-color: #28a745; }
#consultation-btn:hover { background-color: #218838; }
.hidden { display: none; }

/* Sezione Risultati */
#loading-animation p { font-size: 1.2em; color: #1a237e; font-weight: bold; }
#result-section { text-align: center; padding: 20px; background-color: rgba(232, 234, 246, 0.8); border: 1px solid rgba(63, 81, 181, 0.3); border-radius: 5px; margin-top: 30px; }
.final-amount { font-size: 2.5em; font-weight: bold; color: #1a237e; margin: 10px 0; }
.disclaimer { font-size: 0.9em; color: #555; font-style: italic; }
#consultation-form { margin-top: 20px; padding: 20px; border-top: 1px solid rgba(0, 0, 0, 0.1); }
#consultation-thanks { color: #28a745; font-weight: bold; font-size: 1.1em; }

/* Footer */
footer { text-align: center; padding-top: 15px; margin-top: 30px; border-top: 1px solid rgba(0,0,0,0.1); }
footer p { color: #666; font-size: 0.9em; margin: 0; }
footer a { color: #3f51b5; text-decoration: none; font-weight: bold; }
footer a:hover { text-decoration: underline; }

/* --- GESTIONE RESPONSIVE PER LE COLONNE --- */
@media (max-width: 768px) {
    .form-columns {
        flex-direction: column; /* Le colonne vanno una sotto l'altra */
        gap: 0; /* Rimuoviamo lo spazio laterale */
    }
    .form-column:first-child {
        margin-bottom: 25px; /* Aggiungiamo spazio sotto la prima colonna */
    }
    .container { padding: 20px; margin: 10px auto; }
    h1 { font-size: 1.8em; }
    .final-amount { font-size: 2em; }
}

@media (max-width: 480px) {
    .container { padding: 15px; }
    h1 { font-size: 1.5em; }
}