/* ============================================================
   GabrielCms – Tema Default v2
   Palette: modalità "vivace" (default) + modalità "tenue"
   Accessibilità: WCAG 2.1 AA; focus sempre visibile
   ============================================================ */

/* ----------------------------------------------------------
   1. TOKEN DI DESIGN  (modalità vivace)
   ---------------------------------------------------------- */
:root {
  /* Colori base */
  --c-bg:          #ffffff;
  --c-bg-alt:      #f5f7fa;       /* sfondo sezioni secondarie */
  --c-bg-card:     #ffffff;
  --c-border:      #dde1e7;
  --c-text:        #1c1f26;       /* testo principale ~17:1 su bianco */
  --c-text-muted:  #515a6a;       /* testo secondario ~7:1 su bianco */

  /* Primario – blu profondo */
  --c-primary:     #1a56c4;       /* 5.3:1 su bianco */
  --c-primary-dk:  #103a8a;       /* 9:1 su bianco */
  --c-primary-lt:  #dce8ff;       /* sfondo tenue su primario */
  --c-primary-fg:  #ffffff;       /* testo su primario */

  /* Accento – ambra */
  --c-accent:      #c46d00;       /* 4.6:1 su bianco */
  --c-accent-lt:   #fff3dc;

  /* Footer */
  --c-footer-bg:   #1c1f26;
  --c-footer-fg:   #e8eaf0;
  --c-footer-link: #93b4f5;       /* 4.6:1 su footer-bg */

  /* Tipografia */
  --font-sans:  "Inter", "Segoe UI", system-ui, sans-serif;
  --font-serif: "Georgia", "Times New Roman", serif;  /* usato per body-text articoli */

  /* Spaziature e forma */
  --radius-sm:  4px;
  --radius-md:  8px;
  --radius-lg:  16px;
  --space:      1rem;
  --max-w:      1200px;

  /* Ombre leggere */
  --shadow-sm:  0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
  --shadow-md:  0 4px 12px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.06);

  /* Transizioni */
  --ease:       .18s ease;
}

/* ----------------------------------------------------------
   2. MODALITÀ TENUE  (aggiunta classe .tema-tenue su <html>)
   ---------------------------------------------------------- */
html.tema-tenue {
  --c-bg:          #f0ede8;
  --c-bg-alt:      #e8e4de;
  --c-bg-card:     #f7f5f2;
  --c-border:      #ccc7bf;
  --c-text:        #2a2520;
  --c-text-muted:  #5e5650;

  --c-primary:     #5a6fa0;       /* 4.8:1 su --c-bg tenue */
  --c-primary-dk:  #3a4f7e;
  --c-primary-lt:  #dde3f0;
  --c-primary-fg:  #ffffff;

  --c-accent:      #8a6200;
  --c-accent-lt:   #f0e6c8;

  --c-footer-bg:   #2a2520;
  --c-footer-fg:   #ede9e3;
  --c-footer-link: #a8bae8;

  --shadow-sm:  0 1px 3px rgba(0,0,0,.06);
  --shadow-md:  0 4px 12px rgba(0,0,0,.08);
}

/* ----------------------------------------------------------
   3. RESET & BASE
   ---------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--c-text);
  background: var(--c-bg);
}

/* ----------------------------------------------------------
   4. TIPOGRAFIA
   ---------------------------------------------------------- */
h1, h2, h3, h4 {
  line-height: 1.2;
  color: var(--c-primary-dk);
  font-weight: 700;
  margin-top: 0;
}
h1 { font-size: clamp(1.75rem, 4vw, 2.25rem); }
h2 { font-size: clamp(1.35rem, 3vw, 1.65rem); }
h3 { font-size: 1.2rem; }
h4 { font-size: 1rem; }

p { margin: 0 0 1rem; }

a {
  color: var(--c-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--ease);
}
a:hover { color: var(--c-primary-dk); }

img { max-width: 100%; height: auto; display: block; }

/* ----------------------------------------------------------
   5. ACCESSIBILITÀ – FOCUS UNIVERSALE
   ---------------------------------------------------------- */
:focus-visible {
  outline: 3px solid var(--c-primary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}
/* Rimuove outline per click con mouse, mantiene per tastiera */
:focus:not(:focus-visible) { outline: none; }

/* Salta al contenuto */
.salta-contenuto {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  background: var(--c-primary-dk);
  color: #fff;
  padding: .6rem 1.2rem;
  font-weight: 600;
  border-radius: 0 0 var(--radius-md) 0;
  text-decoration: none;
}
.salta-contenuto:focus-visible {
  left: 0;
  outline-offset: 0;
}

/* Solo screen-reader */
.solo-lettore-schermo {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ----------------------------------------------------------
   6. INTESTAZIONE
   ---------------------------------------------------------- */
.intestazione-sito {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--c-bg-card);
  border-bottom: 1px solid var(--c-border);
  box-shadow: var(--shadow-sm);
}

.contenuto-intestazione {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: .75rem var(--space);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem var(--space);
}

/* Logo */
.logo-sito {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
.logo-sito a {
  text-decoration: none;
  color: var(--c-primary-dk);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.logo-sito a::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-accent);
  flex-shrink: 0;
}

/* Navigazione */
.navigazione-principale { flex: 1 1 auto; }
.navigazione-principale ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 .25rem;
}
.navigazione-principale a {
  display: inline-block;
  padding: .45rem .7rem;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: .9375rem;
  text-decoration: none;
  color: var(--c-text);
  transition: background var(--ease), color var(--ease);
}
.navigazione-principale a:hover,
.navigazione-principale a[aria-current="page"] {
  background: var(--c-primary-lt);
  color: var(--c-primary-dk);
}

/* Pulsante hamburger (mobile) */
.apri-menu {
  display: none;
  background: none;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  padding: .4rem .7rem;
  font-size: .95rem;
  font-weight: 600;
  color: var(--c-text);
  cursor: pointer;
  gap: .5rem;
  align-items: center;
}
.apri-menu:hover { background: var(--c-bg-alt); }

/* ----------------------------------------------------------
   7. MODULO RICERCA
   ---------------------------------------------------------- */
.modulo-ricerca {
  display: flex;
  gap: .3rem;
}
.modulo-ricerca input[type="search"] {
  padding: .45rem .75rem;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  background: var(--c-bg-alt);
  color: var(--c-text);
  font-size: .9375rem;
  min-width: 13ch;
  transition: border-color var(--ease), background var(--ease);
}
.modulo-ricerca input[type="search"]:hover {
  border-color: var(--c-primary);
}

/* ----------------------------------------------------------
   8. PULSANTI
   ---------------------------------------------------------- */
button,
.pulsante {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  cursor: pointer;
  background: var(--c-primary);
  color: var(--c-primary-fg);
  border: none;
  padding: .5rem 1rem;
  border-radius: var(--radius-sm);
  font-size: .9375rem;
  font-weight: 600;
  font-family: inherit;
  text-decoration: none;
  transition: background var(--ease), box-shadow var(--ease);
}
button:hover, .pulsante:hover {
  background: var(--c-primary-dk);
  box-shadow: var(--shadow-sm);
}

/* Variante outline */
.pulsante-outline {
  background: transparent;
  color: var(--c-primary);
  border: 2px solid var(--c-primary);
}
.pulsante-outline:hover {
  background: var(--c-primary-lt);
  color: var(--c-primary-dk);
  border-color: var(--c-primary-dk);
}

/* ----------------------------------------------------------
   9. LAYOUT PRINCIPALE  (3 colonne → 2 → 1)
   ---------------------------------------------------------- */
.contenitore-principale {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: calc(var(--space) * 1.5) var(--space);
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 260px;
  gap: calc(var(--space) * 2);
  align-items: start;
}
.contenuto { min-width: 0; }

/* ----------------------------------------------------------
   10. BARRE LATERALI
   ---------------------------------------------------------- */
.barra-laterale {
  background: var(--c-bg-alt);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  padding: var(--space);
}

.titolo-barra {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--c-text-muted);
  margin: 0 0 .75rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--c-border);
}

.menu-laterale {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}
.menu-laterale li { border-bottom: 1px solid var(--c-border); }
.menu-laterale li:last-child { border-bottom: none; }
.menu-laterale a {
  display: block;
  padding: .5rem .25rem;
  text-decoration: none;
  color: var(--c-text);
  font-size: .9375rem;
  transition: color var(--ease), padding-left var(--ease);
}
.menu-laterale a:hover {
  color: var(--c-primary);
  padding-left: .4rem;
}

/* ----------------------------------------------------------
   11. CARD ARTICOLO (anteprima)
   ---------------------------------------------------------- */
.elenco-articoli {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 1.5rem;
}

.articolo-anteprima article {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  padding: var(--space) calc(var(--space) * 1.25);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--ease), transform var(--ease);
}
.articolo-anteprima article:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.copertina-anteprima {
  width: 100%;
  border-radius: var(--radius-sm);
  margin-bottom: .75rem;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.titolo-anteprima {
  margin: 0 0 .25rem;
  font-size: 1.1rem;
}
.titolo-anteprima a {
  text-decoration: none;
  color: var(--c-primary-dk);
}
.titolo-anteprima a:hover { text-decoration: underline; }

.meta-anteprima, .meta-articolo {
  color: var(--c-text-muted);
  font-size: .875rem;
  margin: 0 0 .5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .75rem;
  align-items: center;
}
.meta-anteprima::before, .meta-articolo::before {
  content: "";
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--c-accent);
  margin-right: -.5rem;
}

/* ----------------------------------------------------------
   12. ARTICOLO SINGOLO
   ---------------------------------------------------------- */
.articolo-singolo {
  background: var(--c-bg-card);
}

.intestazione-articolo {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--c-border);
}

.copertina-articolo, .copertina-pagina {
  border-radius: var(--radius-md);
  margin: 0 0 1.5rem;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

/* Testo corpo – usa il serif per leggibilità lunga */
.corpo-articolo, .corpo-pagina {
  font-family: var(--font-serif);
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--c-text);
}
.corpo-articolo h2, .corpo-pagina h2 { font-family: var(--font-sans); margin-top: 2rem; }
.corpo-articolo h3, .corpo-pagina h3 { font-family: var(--font-sans); margin-top: 1.5rem; }
.corpo-articolo blockquote {
  border-left: 4px solid var(--c-primary);
  margin: 1.5rem 0;
  padding: .75rem 1.25rem;
  background: var(--c-primary-lt);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic;
  color: var(--c-text-muted);
}
.corpo-articolo pre {
  background: var(--c-bg-alt);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  padding: 1rem;
  overflow-x: auto;
  font-size: .9rem;
}

/* Sommario (abstract) */
.sommario-articolo {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--c-text-muted);
  border-left: 4px solid var(--c-accent);
  padding-left: 1rem;
  margin-bottom: 1.5rem;
}

/* Audio player */
.player-audio {
  background: var(--c-bg-alt);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  padding: var(--space);
  margin: 1.5rem 0;
}
.player-audio figcaption {
  font-weight: 600;
  margin-bottom: .5rem;
  font-size: .9375rem;
}
.player-audio audio { width: 100%; }

/* ----------------------------------------------------------
   13. HOME
   ---------------------------------------------------------- */
.introduzione-home {
  background: var(--c-primary-lt);
  border-radius: var(--radius-lg);
  padding: calc(var(--space) * 2) calc(var(--space) * 2.5);
  margin-bottom: 2rem;
  border-left: 5px solid var(--c-primary);
}
.introduzione-home h1 { color: var(--c-primary-dk); margin-bottom: .5rem; }
.testo-introduzione { font-size: 1.1rem; color: var(--c-text); max-width: 65ch; }

.articoli-home h2 {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: 1.25rem;
}
.articoli-home h2::after {
  content: "";
  flex: 1;
  height: 2px;
  background: var(--c-border);
  border-radius: 1px;
}

.tutti-articoli { margin-top: 1.5rem; font-weight: 600; }

/* ----------------------------------------------------------
   14. RICERCA
   ---------------------------------------------------------- */
.modulo-ricerca-completo {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  margin: 1rem 0 1.5rem;
}
.modulo-ricerca-completo input[type="search"] {
  flex: 1 1 260px;
  padding: .6rem .9rem;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  background: var(--c-bg-alt);
  color: var(--c-text);
}
.riepilogo-ricerca { font-weight: 700; margin-bottom: 1rem; }
.nessun-risultato {
  padding: 1.5rem;
  background: var(--c-bg-alt);
  border-radius: var(--radius-md);
  border: 1px solid var(--c-border);
  color: var(--c-text-muted);
}

/* ----------------------------------------------------------
   15. CATEGORIE
   ---------------------------------------------------------- */
.etichetta-categoria {
  display: inline-block;
  background: var(--c-accent-lt);
  color: var(--c-accent);
  font-size: .8125rem;
  font-weight: 700;
  padding: .15rem .6rem;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* ----------------------------------------------------------
   16. FOOTER
   ---------------------------------------------------------- */
.pie-pagina-sito {
  background: var(--c-footer-bg);
  color: var(--c-footer-fg);
  margin-top: 3rem;
}
.contenuto-pie-pagina {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: calc(var(--space) * 1.75) var(--space);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: center;
}
.menu-pie-pagina {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
}
.menu-pie-pagina a {
  color: var(--c-footer-link);
  text-decoration: none;
  font-size: .9375rem;
}
.menu-pie-pagina a:hover { text-decoration: underline; }
.diritti {
  margin: 0;
  font-size: .875rem;
  color: var(--c-footer-fg);
  opacity: .7;
}

/* ----------------------------------------------------------
   17. SWITCHER TEMA TENUE (widget nel footer)
   ---------------------------------------------------------- */
.switcher-tema {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .875rem;
  color: var(--c-footer-fg);
}
.switcher-tema label { cursor: pointer; }
/* Toggle switch */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
}
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider {
  position: absolute;
  inset: 0;
  background: #555;
  border-radius: 999px;
  cursor: pointer;
  transition: background var(--ease);
}
.toggle-slider::before {
  content: "";
  position: absolute;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: #fff;
  top: 3px; left: 3px;
  transition: transform var(--ease);
}
.toggle-switch input:checked + .toggle-slider { background: var(--c-primary); }
.toggle-switch input:checked + .toggle-slider::before { transform: translateX(16px); }
.toggle-switch input:focus-visible + .toggle-slider {
  outline: 3px solid var(--c-primary-lt);
  outline-offset: 2px;
}

/* ----------------------------------------------------------
   18. ERRORE 404
   ---------------------------------------------------------- */
.errore-404 {
  text-align: center;
  padding: 4rem var(--space);
}
.errore-404 .codice-errore {
  font-size: clamp(4rem, 12vw, 8rem);
  font-weight: 900;
  color: var(--c-primary-lt);
  line-height: 1;
  margin: 0 0 .5rem;
}
.errore-404 h1 { color: var(--c-primary-dk); }

/* ----------------------------------------------------------
   19. PRINT
   ---------------------------------------------------------- */
@media print {
  .intestazione-sito,
  .navigazione-principale,
  .barra-laterale,
  .pie-pagina-sito,
  .modulo-ricerca,
  .switcher-tema { display: none !important; }
  .contenitore-principale { display: block; }
  body { font-size: 12pt; color: #000; background: #fff; }
  a { color: #000; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* ============================================================
   AGGIUNTE v2.1 – Toolbar, TTS, Focus, PDF, Tempo lettura
   ============================================================ */

/* ----------------------------------------------------------
   A. TOOLBAR ARTICOLO
   ---------------------------------------------------------- */
.toolbar-articolo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem .6rem;
  padding: .55rem .75rem;
  background: var(--c-bg-alt);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  margin-bottom: .75rem;
}

.gruppo-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
}

.sep-toolbar {
  width: 1px;
  height: 1.5rem;
  background: var(--c-border);
  flex-shrink: 0;
}

.btn-toolbar {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--c-bg-card);
  color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  padding: .3rem .65rem;
  font-size: .8125rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background var(--ease), border-color var(--ease), color var(--ease);
  white-space: nowrap;
}
.btn-toolbar:hover:not(:disabled) {
  background: var(--c-primary-lt);
  border-color: var(--c-primary);
  color: var(--c-primary-dk);
}
.btn-toolbar:disabled {
  opacity: .4;
  cursor: not-allowed;
}
.btn-toolbar[aria-pressed="true"] {
  background: var(--c-primary);
  color: var(--c-primary-fg);
  border-color: var(--c-primary-dk);
}

/* Selettori voce/velocità */
.sel-voce,
.sel-velocita {
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  background: var(--c-bg-card);
  color: var(--c-text);
  font-size: .8125rem;
  padding: .28rem .5rem;
  font-family: inherit;
}
.sel-voce   { max-width: 180px; }
.sel-velocita { width: 5rem; }

/* ----------------------------------------------------------
   B. BARRA PROGRESSO TTS
   ---------------------------------------------------------- */
.barra-progresso-tts {
  height: 3px;
  background: var(--c-border);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 1rem;
}
.progresso-tts-fill {
  height: 100%;
  width: 0%;
  background: var(--c-primary);
  border-radius: 2px;
  transition: width .3s linear;
}

/* ----------------------------------------------------------
   C. BADGE TEMPO DI LETTURA
   ---------------------------------------------------------- */
.badge-tempo {
  display: inline-block;
  background: var(--c-bg-alt);
  color: var(--c-text-muted);
  font-size: .8rem;
  font-weight: 600;
  padding: .1rem .5rem;
  border-radius: 999px;
  border: 1px solid var(--c-border);
}
.badge-tempo:empty { display: none; }

/* ----------------------------------------------------------
   D. SOMMARIO AUTOMATICO
   ---------------------------------------------------------- */
.sommario-automatico {
  margin-bottom: 1.5rem;
}
.sommario-automatico[hidden] { display: none; }

/* ----------------------------------------------------------
   E. MODALITÀ LETTURA SENZA DISTRAZIONI
   ---------------------------------------------------------- */
html.modalita-lettura .intestazione-sito,
html.modalita-lettura .barra-sinistra,
html.modalita-lettura .barra-destra,
html.modalita-lettura .pie-pagina-sito,
html.modalita-lettura .tutti-articoli,
html.modalita-lettura .sommario-automatico {
  display: none !important;
}

html.modalita-lettura .contenitore-principale {
  grid-template-columns: 1fr;
  max-width: 72ch;
  padding: 2rem var(--space);
}

html.modalita-lettura .toolbar-articolo {
  position: sticky;
  top: 0;
  z-index: 50;
  border-radius: 0;
  border-left: none;
  border-right: none;
  margin-bottom: 1.5rem;
}

html.modalita-lettura .corpo-articolo {
  font-size: 1.125rem;
  line-height: 1.9;
  max-width: 72ch;
}

html.modalita-lettura body {
  background: var(--c-bg);
}

/* ----------------------------------------------------------
   F. STAMPA / PDF (aggiornato con toolbar nascosta)
   ---------------------------------------------------------- */
@media print {
  .intestazione-sito,
  .navigazione-principale,
  .barra-sinistra,
  .barra-destra,
  .pie-pagina-sito,
  .modulo-ricerca,
  .switcher-tema,
  .toolbar-articolo,
  .barra-progresso-tts,
  .sommario-automatico { display: none !important; }

  .contenitore-principale { display: block; }
  body { font-size: 12pt; color: #000; background: #fff; }
  a { color: #000; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }

  .badge-tempo { display: none; }
  .copertina-articolo {
    max-height: 200px;
    object-fit: cover;
  }
}

/* ----------------------------------------------------------
   G. RESPONSIVE toolbar su mobile
   ---------------------------------------------------------- */
@media screen and (max-width: 600px) {
  .toolbar-articolo { gap: .3rem; padding: .4rem .5rem; }
  .sel-voce         { max-width: 120px; font-size: .75rem; }
  .btn-toolbar      { padding: .28rem .45rem; font-size: .75rem; }
  .sep-toolbar      { display: none; }
}

/* ============================================================
   AGGIUNTE v2.2 – h2 navigazione, motto, link feed, avvisi
   ============================================================ */

/* ----------------------------------------------------------
   H. h2 PRIMA DEL MENU PRINCIPALE
   Visibile a bassa opacità come intestazione di sezione;
   serve sia visivamente (struttura) sia agli screen reader.
   ---------------------------------------------------------- */
.titolo-nav {
  font-size: .6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--c-text-muted);
  opacity: .65;
  margin: 0 0 .2rem;
  padding: 0 .35rem;
  /* Appare solo su desktop dove c'è spazio sopra la ul */
}

/* Su mobile il titolo va prima dell'ul aperta, NON inline con il pulsante */
@media (max-width: 768px) {
  .titolo-nav {
    display: block;
    padding: .5rem .75rem .1rem;
    border-top: 1px solid var(--c-border);
  }
}

/* ----------------------------------------------------------
   I. MOTTO SITO (sotto il logo, opzionale)
   ---------------------------------------------------------- */
.motto-sito {
  display: block;
  font-size: .75rem;
  font-weight: 400;
  color: var(--c-text-muted);
  letter-spacing: 0;
  margin-top: .05rem;
  opacity: .85;
}

/* ----------------------------------------------------------
   J. LINK FEED RSS nella home
   ---------------------------------------------------------- */
.link-feed {
  margin-top: .75rem;
}
.link-feed a {
  font-size: .875rem;
  font-weight: 600;
  color: var(--c-accent);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}
.link-feed a:hover { text-decoration: underline; }

/* ----------------------------------------------------------
   K. AVVISO VUOTO (elenco senza risultati)
   ---------------------------------------------------------- */
.avviso-vuoto {
  color: var(--c-text-muted);
  font-size: .9375rem;
  padding: .75rem .5rem;
  border-left: 3px solid var(--c-border);
}

/* ----------------------------------------------------------
   L. LOGO: supporto motto su display flex
   ---------------------------------------------------------- */
.logo-sito {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.logo-sito a {
  display: flex;
  align-items: center;
  gap: .4rem;
}

/* ----------------------------------------------------------
   M. SEZIONE INTESTAZIONE: nav con h2 allineato
      Su desktop l'h2 vive sopra la ul, inline con il flusso.
   ---------------------------------------------------------- */
.navigazione-principale {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Su desktop lo spingiamo in linea con gli altri flex-item */
@media (min-width: 769px) {
  .navigazione-principale {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
  }
  .titolo-nav {
    /* Su desktop: larghezza 0 visivo, ma presente nell'albero */
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
  }
}
