/* ---- Integrazione con il CMS ---- */
.nav-links .cms-menu { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.nav-links .cms-menu a { padding: 0; color: #C9C7D6; border-radius: 0; }
.nav-links .cms-menu a:hover, .nav-links .cms-menu .active > a { color: var(--text); background: transparent; }
.nav-links .cms-submenu { background: #12121C; border-color: var(--line); }
footer .cms-links { display: flex; flex-wrap: wrap; gap: 8px 26px; list-style: none; margin: 0; padding: 0; }
footer .cms-links a { line-height: 1.6; }
footer a:hover { color: var(--text); }

/* Pagine e news del CMS sul tema scuro */
.cms-page, .cms-news, main > .cms-news-index { max-width: 900px; margin: 0 auto; padding: 72px 28px 96px; }
.cms-page-head h1 { font-size: clamp(36px, 4.4vw, 54px); line-height: 1.05; }
.cms-page-subtitle { color: #CFCDDB; font-size: 19px; }
.cms-breadcrumb { color: var(--muted); font-size: 14px; }
.cms-content { color: #D6D4E0; font-size: 17px; line-height: 1.7; }
.cms-content h2, .cms-content h3 { color: var(--text); margin: 1.6em 0 .5em; }
.cms-content a { color: var(--accent); text-decoration: underline; }
.cms-content img { max-width: 100%; height: auto; border-radius: 16px; }
.cms-child-card, .cms-news-card { background: var(--card); border-color: var(--line); }
.cms-sidenav li a { color: #C3C1D2; }
.cms-preview-banner { background: rgba(255,162,76,.14); color: #FFC48A; }

/* Accesso, errori */
.narrow-page { padding: 96px 0 120px; }
.login-card { max-width: 440px; margin: 0 auto; padding: 36px; display: flex; flex-direction: column; gap: 12px; }
.login-card h1 { font-size: 32px; }
.login-card a { color: var(--accent); }
.login-card form { display: flex; flex-direction: column; gap: 16px; margin-top: 10px; }
.field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: #C3C1D2; }
.field input { padding: 13px 16px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255,255,255,.04); color: var(--text); font: inherit; font-size: 16px; outline: none; }
.field input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(255,162,76,.15); }
.form-error { padding: 12px 16px; border-radius: 12px; background: rgba(255,78,92,.12); border: 1px solid rgba(255,78,92,.35); color: #FF9AA3; }
footer .cms-links-title { display: none; }

/* Le altre pagine (CMS, accesso, errori): la barra in alto e' fissa */
body.page main { padding-top: 76px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 24px; }
.muted { color: var(--muted); }

/* Menu da telefono (pulsante ☰ e pannello con le voci del menu CMS) */
.nav-toggle { display: none; width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.04); color: #fff; align-items: center; justify-content: center; cursor: pointer; }
.nav-toggle svg { width: 22px; height: 22px; }
@media (max-width: 1000px) {
  .nav-toggle { display: inline-flex; }
  .nav.open { background: rgba(4,4,10,.96); backdrop-filter: blur(14px); border-color: var(--line); }
  .nav.open .nav-links { display: flex; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; gap: 0; padding: 8px 24px 20px; background: rgba(4,4,10,.96); border-bottom: 1px solid var(--line); }
  .nav.open .nav-links a { padding: 14px 0; font-size: 17px; border-bottom: 1px solid var(--line); }
  .nav.open .nav-links a::after { display: none; }
  .nav.open .nav-links .cms-menu { flex-direction: column; gap: 0; }
  .nav.open .nav-links .cms-menu a { display: block; }
  .nav-links .only-mobile { color: var(--accent); }
}
@media (min-width: 1001px) { .nav-links .only-mobile { display: none; } }
