body { font-family: Arial, Helvetica, sans-serif; line-height: 1.6; color: #000000; background-color: #FFFFFF; margin: 0; padding: 0; font-size: 110%; transition: font-size 0.3s ease; scroll-behavior: smooth; }

body.tema-alto-contrasto { background-color: #000000 !important; color: #FFFF00 !important; }
body.tema-alto-contrasto header, body.tema-alto-contrasto .recapiti, body.tema-alto-contrasto nav, body.tema-alto-contrasto footer, body.tema-alto-contrasto .strumenti-accessibilita, body.tema-alto-contrasto .riquadro-codice, body.tema-alto-contrasto .campagna-5x1000 { background-color: #000000 !important; color: #FFFF00 !important; border-color: #FFFF00 !important; }
body.tema-alto-contrasto h1, body.tema-alto-contrasto h2, body.tema-alto-contrasto h3, body.tema-alto-contrasto .testo-evidenza { color: #FFFF00 !important; border-bottom-color: #FFFF00 !important; }
body.tema-alto-contrasto a { color: #00FFFF !important; }
body.tema-alto-contrasto a:focus, body.tema-alto-contrasto a:hover { background-color: #FFFF00 !important; color: #000000 !important; }
body.tema-alto-contrasto button { background-color: #000000 !important; color: #FFFF00 !important; border: 2px solid #FFFF00 !important; }

.salta-menu { position: absolute; top: -40px; left: 0; background: #000000; color: #FFFFFF; padding: 8px; z-index: 100; }
.salta-menu:focus { top: 0; }
a:focus, button:focus, input:focus { outline: 3px solid #FF0000; outline-offset: 2px; }

.strumenti-accessibilita { background-color: #333333; color: #FFFFFF; text-align: right; padding: 10px 20px; }
.strumenti-accessibilita button { background-color: #FFFFFF; color: #000000; border: 1px solid #000000; padding: 5px 10px; margin-left: 10px; font-weight: bold; cursor: pointer; }

header { background-color: #F4F4F4; padding: 20px; border-bottom: 2px solid #000000; }
.blocco-superiore { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: 15px; }
.blocco-superiore img { max-height: 80px; width: auto; }
header h1 { font-size: 1.8em; margin: 0 15px; color: #003366; text-align: center; flex-grow: 1; }
.recapiti { background-color: #E8F4FA; padding: 15px; border-left: 5px solid #003366; margin-top: 15px; }

nav { background-color: #003366; padding: 10px 20px; }
nav ul { list-style-type: none; padding: 0; margin: 0; }
nav ul li { display: inline-block; margin-right: 15px; margin-bottom: 5px; margin-top: 5px; }
nav ul li a { color: #FFFFFF; text-decoration: none; font-weight: bold; font-size: 1.1em; padding: 5px; }
nav ul li a:hover, nav ul li a:focus { background-color: #FFFFFF; color: #003366; text-decoration: underline; }

main { padding: 30px 20px; max-width: 1000px; margin: 0 auto; min-height: 400px; }
h2 { color: #003366; border-bottom: 1px solid #CCCCCC; padding-bottom: 5px; }
h3 { color: #003366; }

.testo-evidenza { font-size: 1.2em; font-weight: bold; text-align: center; margin: 20px 0; color: #CC0000; }
.riquadro-codice { background-color: #E8F4FA; border: 3px dashed #003366; padding: 20px; text-align: center; margin: 30px 0; }
.codice-fiscale { font-size: 2.5em; font-weight: bold; letter-spacing: 5px; color: #003366; display: block; margin-top: 10px; }
.istruzioni-firma { background-color: #F9F9F9; padding: 20px; border: 1px solid #DDDDDD; margin-bottom: 30px; }
.istruzioni-firma ol { font-size: 1.1em; line-height: 1.8; }
.campagna-5x1000 { text-align: center; margin-top: 20px; margin-bottom: 20px; padding: 15px; background-color: #F9F9F9; border: 1px solid #DDDDDD; }
.campagna-5x1000 img { max-width: 100%; height: auto; border: 2px solid #000000; }
.collegamento-campagna { display: block; margin-top: 15px; font-size: 1.4em; font-weight: bold; color: #FF0000; text-decoration: none; }
.collegamento-campagna:hover, .collegamento-campagna:focus { text-decoration: underline; color: #CC0000; }

footer { background-color: #333333; color: #FFFFFF; text-align: center; padding: 20px; margin-top: 40px; }
footer a { color: #FFFFCC; text-decoration: underline; margin: 0 10px; }

.social-links { margin: 15px 0; }
.social-links a { text-decoration: none; display: inline-block; transition: transform 0.2s; }
.social-links a:hover, .social-links a:focus { transform: scale(1.1); outline: 3px solid #FF0000; }
body.tema-alto-contrasto .social-links img { border: 2px solid #FFFF00 !important; background-color: #FFFFFF !important; border-radius: 5px; }
/* --- STILI AGGIUNTIVI PER LA PAGINA CONTATTI --- */
.contenitore-contatti { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 20px; }
.blocco-contatti { flex: 1; min-width: 300px; background-color: #E8F4FA; padding: 20px; border-left: 5px solid #003366; }
.form-contatti { flex: 1; min-width: 300px; background-color: #F9F9F9; padding: 20px; border: 1px solid #DDDDDD; }
.campo-form { margin-bottom: 15px; }
.campo-form label { display: block; font-weight: bold; margin-bottom: 5px; }
.campo-form input, .campo-form textarea { width: 100%; padding: 10px; border: 1px solid #CCCCCC; box-sizing: border-box; font-size: 1em; }
.pulsante-invio { background-color: #003366; color: #FFFFFF; padding: 10px 20px; border: none; font-weight: bold; cursor: pointer; font-size: 1.1em; width: 100%; }
.pulsante-invio:hover { background-color: #002244; }

/* --- STILI AGGIUNTIVI PER LA PAGINA SERVIZIO CIVILE --- */
.blocco-evidenza { background-color: #FFF4E5; padding: 20px; border: 2px solid #FF8C00; margin: 20px 0; border-radius: 8px; }
.scadenza { font-weight: bold; color: #CC0000; font-size: 1.2em; }
.blocco-info { background-color: #E8F4FA; padding: 20px; border-left: 5px solid #003366; margin: 20px 0; }
.nota-importante { background-color: #F9F9F9; padding: 15px; border: 1px dashed #666666; font-style: italic; font-size: 0.95em; margin-top: 10px; }

/* Adattamento di questi blocchi per la modalità Alto Contrasto */
body.tema-alto-contrasto .blocco-evidenza, body.tema-alto-contrasto .blocco-info, body.tema-alto-contrasto .nota-importante { background-color: #000000 !important; color: #FFFF00 !important; border-color: #FFFF00 !important; }
body.tema-alto-contrasto .scadenza { color: #FFFF00 !important; text-decoration: underline; }
body.tema-alto-contrasto .blocco-contatti, body.tema-alto-contrasto .form-contatti { background-color: #000000 !important; color: #FFFF00 !important; border-color: #FFFF00 !important; }
body.tema-alto-contrasto label { color: #FFFF00 !important; }
body.tema-alto-contrasto input, body.tema-alto-contrasto textarea { background-color: #000000 !important; color: #FFFF00 !important; border: 2px solid #FFFF00 !important; }

@media (max-width: 600px) { .contenitore-contatti { flex-direction: column; } }
/* --- STILI AGGIUNTIVI PER LA PAGINA SERVIZIO CIVILE --- */
.blocco-evidenza { background-color: #FFF4E5; padding: 20px; border: 2px solid #FF8C00; margin: 20px 0; border-radius: 8px; }
.scadenza { font-weight: bold; color: #CC0000; font-size: 1.2em; }
.blocco-info { background-color: #E8F4FA; padding: 20px; border-left: 5px solid #003366; margin: 20px 0; }
.nota-importante { background-color: #F9F9F9; padding: 15px; border: 1px dashed #666666; font-style: italic; font-size: 0.95em; margin-top: 10px; }

/* Adattamento di questi blocchi per la modalità Alto Contrasto */
body.tema-alto-contrasto .blocco-evidenza, body.tema-alto-contrasto .blocco-info, body.tema-alto-contrasto .nota-importante { background-color: #000000 !important; color: #FFFF00 !important; border-color: #FFFF00 !important; }
body.tema-alto-contrasto .scadenza { color: #FFFF00 !important; text-decoration: underline; }