:root {
  --color-primary: #ffffff; /* era #003366 */
  --color-primary-darker: #ffffff; /* era #002244 */
  --color-secondary: #ffffff; /* era #0055a5 */
  --color-accent: #ffcc00;
  --color-accent-darker: #e6b800;
  --color-text: #ffffff;
  --color-text-secondary: #e0e0e0;
  --color-text-light: #ffffff;
  --color-background: #000000;
  --color-background-offwhite: #000000;
  --color-border: #ffcc00; /* oro per i bordi */
  --color-quote-bg: rgba(255, 204, 0, 0.08); /* leggerissimo oro trasparente */
  --color-overlay: rgba(0, 0, 0, 0.65);

  --font-primary: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --font-size-base: 1.0rem;
  --line-height-base: 1.7;

  --space-xs: 0.5rem; --space-s: 1rem; --space-m: 1.5rem; --space-l: 2.5rem; --space-xl: 4rem; --space-xxl: 6rem;

  --border-radius-medium: 12px; --border-radius-large: 18px; --border-radius-pill: 999px;
  --shadow-soft: 0 5px 15px rgba(0, 0, 0, 0.20);
  --shadow-medium: 0 8px 25px rgba(0, 0, 0, 0.30);
  --transition-speed: 0.35s; --transition-speed-fast: 0.2s;
  --transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
  --container-max-width: 1100px;
  --animation-timing: var(--transition-timing-function);
}

/* Reset base e Stili Globali */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-padding-top: 100px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { font-family: var(--font-primary); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--color-text); background-color: var(--color-background); -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-weight: 600; line-height: 1.25; color: var(--color-primary); letter-spacing: -0.01em; }
h1 { font-size: calc(1.8rem + 2.5vw); margin-bottom: var(--space-s); font-weight: 700; letter-spacing: -0.02em;}
h2 { font-size: calc(1.6rem + 1.8vw); margin-bottom: var(--space-l); text-align: center; padding-bottom: var(--space-m); position: relative; }
h3 { font-size: 1.4rem; margin-top: 0; margin-bottom: var(--space-s); color: var(--color-primary); font-weight: 500; }
p { margin-bottom: var(--space-m); color: var(--color-text-secondary); font-weight: 400; }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-speed) var(--transition-timing-function); }
a:hover { color: var(--color-accent); }
main a:not(.button-primary):not(.cta-link) { text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: 3px; transition: color var(--transition-speed-fast) ease, text-decoration-color var(--transition-speed-fast) ease; }
main a:not(.button-primary):not(.cta-link):hover { color: var(--color-accent); text-decoration-color: var(--color-accent); }
ul { list-style: none; padding-left: 0; margin-bottom: var(--space-m); }
li { position: relative; padding-left: var(--space-l); margin-bottom: var(--space-s); }
li::before { content: '→'; color: var(--color-accent); font-weight: 400; font-size: 1em; position: absolute; left: var(--space-s); top: 0.1em; transition: transform var(--transition-speed-fast) var(--transition-timing-function); }
li:hover::before { transform: translateX(4px); }
strong { color: var(--color-text); font-weight: 600; }
em { display: block; margin: var(--space-l) 0; font-style: normal; color: var(--color-text); font-size: 1.2rem; font-weight: 500; text-align: center; border-left: none; padding: var(--space-m) var(--space-m); background: none; }
img { max-width: 100%; height: auto; display: block; border-radius: var(--border-radius-medium); }
.logo-link img { border-radius: 0; }

:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; box-shadow: none; border-radius: var(--border-radius-medium); }
*:focus:not(:focus-visible) { outline: none; }

/* ANIMATIONS */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-15px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeInUpScale { from { opacity: 0; transform: translateY(30px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* LAYOUT COMPONENTS */
.container { width: 90%; max-width: var(--container-max-width); margin-left: auto; margin-right: auto; }

/* Header con Immagine Background */
.site-header { color: var(--color-text-light); padding: var(--space-xxl) 0; text-align: center; position: relative; overflow: hidden; background-color: var(--color-background); }
.hero-background-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; z-index: 0; opacity: 0.9; border-radius: 0; box-shadow: none; }
.site-header:not(.simple-header)::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--color-overlay); z-index: 1; }
.site-header .container { position: relative; z-index: 2; }
.site-header:not(.simple-header) h1 { color: var(--color-text-light); animation: fadeInDown 1s var(--animation-timing) forwards; text-shadow: 1px 1px 3px rgba(0,0,0,0.3); font-weight: 800; letter-spacing: -0.02em;}
.site-header:not(.simple-header) p { font-size: 1.2rem; color: rgba(255,255,255,0.85); max-width: 700px; margin-left: auto; margin-right: auto; animation: fadeIn 1s 0.2s var(--animation-timing) forwards; }

/* Header Semplificato per Pagine Interne */
.simple-header { padding: var(--space-xl) 0 var(--space-l) 0; background: var(--color-background); text-align: center; border-bottom: 1px solid var(--color-border); }
.simple-header h1 { color: var(--color-primary); font-size: 2.5rem; margin-bottom: var(--space-xs); animation: none; text-shadow: none; font-weight: 700; letter-spacing: -0.02em;}
.simple-header p { color: var(--color-text-secondary); font-size: 1.1rem; margin-bottom: 0; animation: none; text-shadow: none;}

/* Navigazione con Logo a Sinistra */
.main-navigation { background-color: rgba(0, 0, 0, 0.9); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); padding: var(--space-xs) 0; position: sticky; top: 0; z-index: 30; }
.main-navigation .container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding-left: var(--space-m); padding-right: var(--space-m); }
.logo-link { display: inline-flex; align-items: center; padding: var(--space-xs) 0; flex-shrink: 0; }
.logo-link img { height: 40px; width: auto; display: block; border-radius: 0; }
.nav-links { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.main-navigation a:not(.logo-link) { color: var(--color-primary); font-weight: 500; padding: var(--space-s) var(--space-m); margin: calc(var(--space-xs) / 2) var(--space-xs); display: inline-block; text-decoration: none; border-radius: var(--border-radius-pill); position: relative; transition: background-color var(--transition-speed-fast) ease, color var(--transition-speed-fast) ease; }
.main-navigation a:not(.logo-link):hover,
.main-navigation a:not(.logo-link):focus-visible { background-color: rgba(255,204,0,0.12); color: var(--color-accent); outline: none; }
.nav-links a.active { color: var(--color-accent); font-weight: 600; }
.nav-links a.active::after { content: ''; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 40%; height: 2px; background-color: var(--color-accent); border-radius: 1px; }

/* Sezioni */
main section { padding: var(--space-xl) 0; background-color: var(--color-background); border-bottom: none; overflow: visible; opacity: 0; transform: translateY(30px) scale(0.98); transition: opacity 0.9s var(--transition-timing-function), transform 0.9s var(--transition-timing-function);}
main section:nth-child(even) { background-color: var(--color-background-offwhite); }
main section.is-visible { opacity: 1; transform: translateY(0) scale(1); }
main section .container-content { background-color: inherit; padding: var(--space-l); border-radius: var(--border-radius-large); transition: box-shadow var(--transition-speed) var(--transition-timing-function); }
main section .container-content:hover { box-shadow: var(--shadow-medium); transform: translateY(-3px); }
main section h2 { text-align: center; position: relative; padding-bottom: var(--space-m); margin-bottom: var(--space-l); }
main section h2::after { content: ''; position: absolute; display: block; width: 60px; height: 5px; background: var(--color-accent); bottom: 0; left: 50%; transform: translateX(-50%); border-radius: 3px; }

/* Layout Flex per Contenuto + Immagine */
.content-image-layout { display: flex; flex-direction: column; gap: var(--space-l); align-items: flex-start; }
.content-image-layout .text-content { order: 2; flex-basis: 100%; }
.content-image-layout .image-content { order: 1; flex-basis: 100%; text-align: center; }
.content-image-layout .image-content img { box-shadow: var(--shadow-soft); margin: 0 auto; }
.content-image-layout .image-content a { display: inline-block; line-height: 0; border-radius: var(--border-radius-medium); overflow: hidden; transition: transform var(--transition-speed) var(--transition-timing-function); }
.content-image-layout .image-content a:hover { transform: scale(1.02); box-shadow: var(--shadow-medium); }

/* Pulsante Primario (CTA) */
.button-primary { display: inline-block; background-color: var(--color-accent); color: var(--color-background); padding: var(--space-s) var(--space-l); border-radius: var(--border-radius-pill); font-weight: 600; border: none; cursor: pointer; position: relative; overflow: hidden; transition: background-color var(--transition-speed-fast) ease, color var(--transition-speed-fast) ease, transform var(--transition-speed-fast) ease, box-shadow var(--transition-speed-fast) ease; }
.button-primary::after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(255, 255, 255, 0.3); opacity: 0; border-radius: 100%; transform: scale(1, 1) translate(-50%); pointer-events: none;}
.button-primary:active::after { transform: scale(60, 60) translate(-50%); opacity: 1; transition: transform 0.5s ease-out, opacity 0.7s ease-out; }
.button-primary:hover,
.button-primary:focus-visible { background-color: var(--color-accent-darker); color: var(--color-background); transform: translateY(-3px) scale(1.02); box-shadow: var(--shadow-medium); outline: none; }
.button-full-mobile { display: block; width: 100%; }

/* Link CTA Interno Sezione */
.cta-link { display: inline-block; font-weight: 500; color: var(--color-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--transition-speed-fast) ease; }
.cta-link:hover { color: var(--color-primary); text-decoration-color: var(--color-primary); }

/* Contatti */
#contatti .container-content { text-align: center; }
#contatti .contact-image { max-width: 500px; margin: 0 auto var(--space-l) auto; }
#contatti a:not(.button-primary) { font-weight: 500; border-bottom: 1px solid var(--color-accent); padding-bottom: 2px; }
#contatti a:not(.button-primary):hover, #contatti a:not(.button-primary):focus-visible { color: var(--color-accent); border-bottom-color: var(--color-accent); outline: none; }
#contatti p { margin-bottom: var(--space-m); }

/* Footer */
.site-footer { background-color: var(--color-background-offwhite); color: var(--color-text-secondary); text-align: center; padding: var(--space-l) 0; margin-top: var(--space-xl); font-size: 0.9rem; border-top: 1px solid var(--color-accent); }
.site-footer a { color: var(--color-accent); text-decoration: underline; }
.site-footer a:hover { color: var(--color-primary); }
.footer-cta { margin-top: var(--space-m); }
.site-footer .button-primary { color: var(--color-background); background: var(--color-accent); }
.site-footer .button-primary:hover, .site-footer .button-primary:focus-visible { color: var(--color-background); background: var(--color-accent-darker); }


/*------------------------------------*\
  # DASHBOARD AREA RISERVATA STYLES
\*------------------------------------*/

/* Gestione Visibilità Login/Contenuto */
#login-container { max-width: 450px; margin: var(--space-xl) auto; padding: var(--space-l); background-color: var(--color-background-offwhite); border-radius: var(--border-radius-large); box-shadow: var(--shadow-soft); }
#dashboard-content-wrapper { display: none; }
body.dashboard-visible #login-container { display: none; }
body.dashboard-visible #dashboard-content-wrapper { display: block; }

/* Stili Form Login */
#login-container label { display: block; margin-bottom: var(--space-s); font-weight: 500; color: var(--color-text); }
#login-container input[type="password"] { width: 100%; padding: var(--space-s); border: 1px solid var(--color-accent); border-radius: var(--border-radius-medium); font-family: var(--font-primary); font-size: 1rem; color: var(--color-text); background: #111; }
#login-container input[type="password"]:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(255, 204, 0, 0.2); }
#login-container button { display: inline-block; background-color: var(--color-accent); color: var(--color-background); padding: var(--space-s) var(--space-l); border-radius: var(--border-radius-pill); font-weight: 600; border: none; cursor: pointer; margin-top: var(--space-m); transition: background-color var(--transition-speed-fast) ease, color var(--transition-speed-fast) ease, transform var(--transition-speed-fast) ease, box-shadow var(--transition-speed-fast) ease; }
#login-container button:hover { background-color: var(--color-accent-darker); color: var(--color-background); transform: translateY(-3px) scale(1.02); box-shadow: var(--shadow-medium); outline: none; }
#error-message { color: #ffcc00; margin-top: var(--space-m); font-weight: 500; display: none; }

/* Layout principale Dashboard (Applicato a .dashboard-layout) */
#dashboard-content-wrapper .dashboard-layout {
  grid-template-columns: 300px auto;
  max-width: 100vw;
  padding: 0;
  gap: 2rem;
}

/* Sidebar */
.dashboard-sidebar { background-color: var(--color-background-offwhite); border-radius: var(--border-radius-large); border: 1px solid var(--color-accent); padding: var(--space-l); }
.sidebar-profile { text-align: center; padding-bottom: var(--space-m); margin-bottom: var(--space-l); border-bottom: 1px solid var(--color-accent); }
.sidebar-avatar { width: 80px; height: 80px; border-radius: 50%; background-color: var(--color-accent); display: flex; align-items: center; justify-content: center; color: var(--color-background); font-size: 2rem; font-weight: 700; margin: 0 auto var(--space-s) auto; }
.sidebar-profile h3 { font-size: 1.1rem; margin-bottom: var(--space-xs); color: var(--color-primary); }
.sidebar-profile p { font-size: 0.9rem; color: var(--color-text-secondary); margin-bottom: 0; }
.progress-section { margin-bottom: 2rem; }
.progress-title { display: flex; justify-content: space-between; margin-bottom: 0.5rem; font-size: 0.9rem; font-weight: 500; }
.progress-bar { width: 100%; height: 8px; background-color: #222; border-radius: 4px; overflow: hidden; }
.progress-value { height: 100%; background-color: var(--color-accent); border-radius: 4px; transition: width 0.5s ease; }
/* Menu Sidebar Migliorato */
.sidebar-nav-menu { list-style: none; padding: 0; margin-top: var(--space-l); }
.sidebar-nav-menu li { margin-bottom: var(--space-xs); }
.sidebar-nav-menu li a { display: flex; align-items: center; gap: var(--space-s); color: var(--color-text-secondary); text-decoration: none; padding: calc(var(--space-s) * 0.9) var(--space-s); border-radius: var(--border-radius-medium); transition: background-color 0.2s ease, color 0.2s ease; }
.sidebar-nav-menu li a svg { width: 18px; height: 18px; flex-shrink: 0; stroke-width: 1.5; color: currentColor; opacity: 0.7; transition: color 0.2s ease, opacity 0.2s ease; margin-right: var(--space-xs); }
.sidebar-nav-menu li a:hover,
.sidebar-nav-menu li a.active { background-color: rgba(255,204,0,0.07); color: var(--color-accent); font-weight: 600; }
.sidebar-nav-menu li a:hover svg,
.sidebar-nav-menu li a.active svg { color: var(--color-accent); opacity: 1; }
.sidebar-nav-menu li a span { text-decoration: none !important; }

/* Contenuto Principale Dashboard */
.dashboard-main { display: flex; flex-direction: column; gap: var(--space-l); width: 100%; max-width: 1200px; margin: 0 auto; }
.dashboard-main > section { display: none; opacity: 0; transform: translateY(20px); transition: opacity 0.4s var(--transition-timing-function), transform 0.4s var(--transition-timing-function); will-change: opacity, transform; }
.dashboard-main > section.active-section { display: block; opacity: 1; transform: translateY(0); }
.dashboard-section { background-color: var(--color-background); border-radius: var(--border-radius-large); padding: var(--space-l); box-shadow: var(--shadow-soft); border: 1px solid var(--color-accent); margin-bottom: var(--space-l); }
.dashboard-section:last-child { margin-bottom: 0; }
.dashboard-section-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-l); border-bottom: 1px solid var(--color-accent); padding-bottom: var(--space-s); }
.dashboard-section-title h2 { font-size: 1.5rem; color: var(--color-primary); margin: 0; text-align: left; padding-bottom: 0; }
.dashboard-section-title h2::after { display: none; }
.dashboard-section-title .cta-link { font-size: 0.9rem; }
.dashboard-grid { display: grid; gap: var(--space-l); grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); }
.grid-cols-2 { grid-template-columns: 1fr; }
.grid-cols-3 { grid-template-columns: 1fr; }
.dashboard-card { background-color: var(--color-background-offwhite); border-radius: var(--border-radius-medium); padding: var(--space-m); border: 1px solid var(--color-accent); transition: transform 0.3s var(--transition-timing-function), box-shadow 0.3s var(--transition-timing-function); display: flex; flex-direction: column; min-width: 0; }
.dashboard-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-medium); }
.dashboard-card h4 { font-size: 1.1rem; margin-bottom: var(--space-s); font-weight: 600; color: var(--color-accent); display: flex; align-items: center; gap: var(--space-xs);}
.dashboard-card h4 svg { width: 16px; height: 16px; opacity: 0.8; }
.dashboard-card p { font-size: 0.9rem; color: var(--color-text-secondary); margin-bottom: var(--space-m); flex-grow: 1; }
.dashboard-card .card-actions { margin-top: auto; padding-top: var(--space-s); }
.dashboard-card .button-primary,
.dashboard-card .button-secondary,
.dashboard-card .cta-link { font-size: 0.9rem; padding: var(--space-xs) var(--space-m); margin-top: 0; }
.update-list { list-style: none; padding: 0; margin: 0; }
.update-list li { padding: var(--space-s) 0; border-bottom: 1px dashed var(--color-accent); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-s); }
.update-list li:last-child { border-bottom: none; }
.update-list li::before { display: none; }
.update-list .update-title-link { text-decoration: none; color: var(--color-text); }
.update-list .update-title-link:hover .update-title { color: var(--color-accent); }
.update-list .update-title { font-weight: 500; flex-grow: 1; transition: color var(--transition-speed-fast) ease; margin-right: var(--space-s); }
.update-list .update-meta { font-size: 0.85rem; color: var(--color-text-secondary); white-space: nowrap; flex-shrink: 0; }

/* Stili FAQ */
.faq-container { max-width: 800px; margin: var(--space-l) auto 0 auto; text-align: left; }
.faq-item { margin-bottom: var(--space-l); padding-bottom: var(--space-l); border-bottom: 1px solid var(--color-accent); }
.faq-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.faq-item h3 { font-size: 1.2rem; color: var(--color-primary); margin-bottom: var(--space-xs); }
.faq-item p { color: var(--color-text-secondary); margin-bottom: 0; }

/* Stile Bottone Secondario */
.button-secondary { display: inline-block; background-color: transparent; color: var(--color-accent); padding: calc(var(--space-s) - 2px) calc(var(--space-l) - 2px); border-radius: var(--border-radius-pill); border: 2px solid var(--color-accent); font-weight: 600; cursor: pointer; transition: background-color var(--transition-speed-fast) ease, color var(--transition-speed-fast) ease, border-color var(--transition-speed-fast) ease, box-shadow var(--transition-speed-fast) ease, transform var(--transition-speed-fast) ease; }
.button-secondary:hover,
.button-secondary:focus-visible { background-color: var(--color-accent); color: var(--color-background); border-color: var(--color-accent); transform: translateY(-2px); box-shadow: var(--shadow-medium); }

/*------------------------------------*\
  #MEDIA QUERIES (Mobile First)
\*------------------------------------*/
/* Mobile: gestione wrap nav */
@media (max-width: 650px) {
    .main-navigation .container { justify-content: center; }
    .logo-link { width: 100%; text-align: center; margin-right: 0; margin-bottom: var(--space-s); }
    .logo-link img { height: 35px; margin: 0 auto; }
    .nav-links { width: 100%; justify-content: center; }
    .main-navigation a:not(.logo-link) { margin: var(--space-xs); padding: var(--space-s); font-size: 0.95rem;}
     .nav-links a.active::after { display: none; }
}

/* Tablet (Stili generali e Stack Dashboard) */
@media (min-width: 768px) and (max-width: 1023px) {
    #dashboard-content-wrapper .dashboard-layout {
        display: block;
        padding: 0;
    }
     .dashboard-sidebar { position: static; max-height: none; overflow-y: visible; margin-bottom: var(--space-l); padding: var(--space-m); }
     .dashboard-main { padding: 0; }
     .dashboard-section { margin-bottom: var(--space-l); padding: var(--space-m); }
     .grid-cols-3 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
     .grid-cols-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}
@media (min-width: 768px) {
    .logo-link img { height: 40px; margin: 0; }
    h1 { font-size: 3.2rem; } h2 { font-size: 2.6rem; } h3 { font-size: 1.6rem; }
    .container { width: 85%; }
    .site-header { padding: var(--space-xxl) 0; }
    .site-header p { font-size: 1.3rem; }
    .main-navigation .container { justify-content: space-between; flex-wrap: nowrap; }
    .logo-link { width: auto; margin-bottom: 0; text-align: left; }
    .nav-links { width: auto; flex-grow: 0; justify-content: flex-end; }
    .main-navigation a:not(.logo-link) { margin: 0 var(--space-xs); padding: var(--space-s) var(--space-m); }
    main section .container-content { box-shadow: var(--shadow-soft); padding: var(--space-l); }
    .content-image-layout { flex-direction: row; align-items: center; gap: var(--space-xl); }
    .content-image-layout .text-content { order: 1; flex: 1 1 55%; }
    .content-image-layout .image-content { order: 2; flex: 1 1 45%; text-align: right; }
    .content-image-layout.image-left .text-content { order: 2; text-align: left; }
    .content-image-layout.image-left .image-content { order: 1; text-align: left; }
    .button-full-mobile { display: inline-block; width: auto; }
    em { text-align: center; }
}

/* Desktop e superiori */
@media (min-width: 1024px) {
    #dashboard-content-wrapper .dashboard-layout {
         display: grid;
         grid-template-columns: 360px 1fr;
         gap: var(--space-l);
         padding: var(--space-l) 0;
         max-width: 100%;
         padding: 0;
    }
    .dashboard-sidebar { position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; margin-bottom: 0; padding: var(--space-l); }
    .dashboard-main { padding: 0; width: 100%; max-width: none; }
    .dashboard-section { margin-bottom: 0; padding: var(--space-l); }
    .logo-link img { height: 40px; }
    h1 { font-size: 3.8rem; letter-spacing: -0.03em; } h2 { font-size: 3rem; letter-spacing: -0.02em;} h3 { font-size: 1.8rem; }
    .container { width: 80%; }
    main section:not(#login-container) { padding: var(--space-xxl) 0; }
    main section .container-content { padding: var(--space-xl); }
    .main-navigation a:not(.logo-link) { margin: 0 var(--space-s); }
    .dashboard-grid.grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
}

/* Stili pagine legali */
.legal-content h1 { 
  font-size: 2rem; 
  color: var(--color-primary); 
  margin-bottom: var(--space-m); 
}

/* Styles for contact form */
.contact-form { 
  max-width: 600px; 
  margin: 0 auto; 
  padding: var(--space-l); 
  background-color: var(--color-background-offwhite); 
  border-radius: var(--border-radius-medium); 
}

.form-group { 
  margin-bottom: var(--space-m); 
  display: flex; 
  flex-direction: column; 
}

/* Stampa */
@media print {
    /* ... stili stampa ... */
}

.sidebar-nav-menu a {
  white-space: normal;
  word-wrap: break-word;
}
