/* ─────────────────────────────────────────────────────────────────────────────
   nav.css - La barra di navigazione, un foglio solo per tutto il sito.

   PERCHÉ UN FILE A PARTE. Le regole della barra stavano in tre posti:
   app.css (94 blocchi), page.css (32) e dentro wordpress.html (23). Cento-
   sessantasette regole per un componente solo, e infatti le barre erano
   diverse in modo visibile: voci diverse, selettore lingua presente in una
   sola, e su /wordpress il menù spariva del tutto.

   Finché le regole vivono in fogli diversi la deriva è questione di tempo, e
   nessuna guardia che confronta due copie la impedisce: la impedisce non
   avere due copie. Questo file lo carica OGNI pagina, compresa la home; il
   markup lo genera lib/navigazione.js. Un markup, un foglio.

   Caricato dopo app.css / page.css, che definiscono i token della tavolozza.
   I fallback nelle var() servono a un caso solo: una pagina che carichi
   questo foglio e non l'altro. Meglio un colore scritto due volte che una
   barra invisibile.
   ────────────────────────────────────────────────────────────────────────── */

/* I token della barra sono SUOI, non presi in prestito dalla tavolozza.
   In tema scuro app.css e page.css non concordano: --primary-fondo esiste solo
   in app.css, e --primary vale #8696a9 di là e #6b7f96 di qua. Un componente
   condiviso che legge un token definito in un foglio solo è la stessa deriva
   di prima, un piano più sotto: stessa barra, due colori.
   I valori sono misurati, non scelti a occhio:
     bottone chiaro  #1a3a5c con testo #fafaf7 -> 11.13
     bottone scuro   #82a0c4 con testo #0f0f0f ->  7.10, e 6.60 contro la pagina
   Il primo valore che avevo messo in scuro (#617489) dava 3.99, sotto AA. */
:root {
  --nav-h: 73px;
  --nav-velo: rgba(250, 250, 247, 0.92);
  --nav-cta-fondo: #1a3a5c;
  --nav-cta-fondo-hover: #0f253d;
  --nav-cta-ink: #fafaf7;
  /* La voce della pagina corrente. Un token suo e non --primary: in tema
     scuro page.css porta --primary a #6b7f96, che sul fondo #14181c dà 4.33,
     sotto AA. È la lezione delle isole scure già scritta in CLAUDE.md, e ci
     sono ricascato: sulla home non si vedeva, perché lì la voce corrente non
     esiste (nessuna delle cinque punta alla home). */
  --nav-corrente: #1a3a5c;   /* 11.13 su crema */
  /* La pastiglia «Presto»: inchiostro e fondo suoi, misurati.
     Con --ink-muted su --cream-deep in scuro faceva 4.03. */
  --nav-tag-ink: #5f5b51;
  --nav-tag-fondo: #ece6d8;
}

/* ── Guscio ──────────────────────────────────────────────────────────────── */
.nav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--nav-velo);
  backdrop-filter: saturate(180%) blur(8px);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
  /* Il bordo c'è sempre. Prima compariva solo con la classe .scrolled, che la
     aggiunge il JS della home: sulle pagine statiche non arrivava mai e la
     barra restava senza stacco dal contenuto. Uno stato che esiste su una
     pagina sola è il modo in cui nascono due barre diverse. */
  border-bottom: 1px solid var(--border, #d9d4ca);
}
.nav-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 24px;
  max-width: 1180px;
  margin: 0 auto;
  box-sizing: border-box;
  min-height: var(--nav-h);
  /* Dichiarati, non ereditati. Misurata sulle sette pagine, la barra usciva
     alta 77px sulla home e 78 sulle statiche, con il selettore lingua spostato
     di 4px: app.css e page.css danno al <body> interlinea e spaziatura diverse,
     e la barra se le prendeva dalla pagina che la ospita. Un componente
     condiviso che eredita non è condiviso: è simile. */
  font-family: var(--font-body, "Inter", system-ui, -apple-system, sans-serif);
  line-height: 1.4;
  letter-spacing: normal;
}

/* ── Logo ────────────────────────────────────────────────────────────────── */
.nav .brand-mark {
  display: inline-flex;
  align-items: center;
  /* Il marchio resta di 36px, il BERSAGLIO diventa di 44: è il modo di tornare
     alla home da ogni pagina del sito, e su un telefono era il più piccolo
     della barra. Ingrandire il logo sarebbe stato un cambio di disegno; qui
     cresce solo l'area che il dito colpisce, e la barra è alta 73px quindi in
     verticale non si muove niente. */
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  text-decoration: none;
  flex-shrink: 0;
}
.nav .brand-logo {
  width: 36px;
  height: 36px;
  display: block;
  transition: transform 0.25s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav .brand-mark:hover .brand-logo { transform: scale(1.04); }
.nav .brand-mark:focus-visible {
  outline: 2px solid var(--primary, #1a3a5c);
  outline-offset: 4px;
  border-radius: 6px;
}

/* ── Voci ────────────────────────────────────────────────────────────────── */
/* margin-left:auto sulle voci e basta: spinge tutto il resto a destra senza
   space-between, che con un numero variabile di figli distribuisce lo spazio
   in modo diverso a seconda di quanti ce ne sono.
   Il gap si stringe con lo schermo invece di rompere il layout: le stesse
   voci occupano 508px in inglese e 561 in spagnolo, e una soglia in pixel è
   per forza sbagliata per qualche lingua. */
.nav-links {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.2vw, 32px);
  margin-left: auto;
}
.nav-links > a {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-soft, #3a3a38);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.18s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-links > a:hover { color: var(--ink, #0f0f0f); }
.nav-links > a[aria-current="page"] { color: var(--nav-corrente); font-weight: 700; }
.nav-links > a.nav-link-agency { color: var(--terracotta, #a14d3a); font-weight: 600; }
.nav-links > a.nav-link-agency[aria-current="page"] { font-weight: 700; }

/* ── Selettore lingua ────────────────────────────────────────────────────── */
/* Un <details>, non un bottone con listener: sulle pagine statiche quel
   listener non c'è mai stato e il selettore semplicemente non si apriva. */
.nav-lang { position: relative; flex-shrink: 0; }
.nav-lang > summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1.5px solid var(--border, #d9d4ca);
  border-radius: 99px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-soft, #3a3a38);
  cursor: pointer;
  list-style: none;
  transition: border-color 0.18s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-lang > summary::-webkit-details-marker { display: none; }
.nav-lang > summary::marker { content: ""; }
.nav-lang > summary:hover { border-color: var(--primary, #1a3a5c); }
.nav-lang > summary:focus-visible {
  outline: 2px solid var(--primary, #1a3a5c);
  outline-offset: 2px;
}
.nav-lang-breve { display: none; }
.nav-lang-chev { transition: transform 0.2s var(--ease, cubic-bezier(.4, 0, .2, 1)); }
.nav-lang[open] .nav-lang-chev { transform: rotate(180deg); }
.nav-lang-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 160px;
  background: var(--cream, #fafaf7);
  border: 1px solid var(--border, #d9d4ca);
  border-radius: 12px;
  box-shadow: 0 8px 24px -8px rgba(15, 23, 42, 0.12);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 60;
}
.nav-lang-menu a {
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 14px;
  color: var(--ink-soft, #3a3a38);
  text-decoration: none;
  border-bottom: none;
}
.nav-lang-menu a:hover { background: var(--cream-soft, #f4f1ea); color: var(--ink, #0f0f0f); }
/* La lingua corrente si MARCA, non si nasconde: chi apre il selettore vede in
   quale lingua sta. Prima spariva dall'elenco con `hidden`, e la regola che
   serviva a farlo valere era il difetto della Fase 2.5.5 rimesso in piedi. */
.nav-lang-menu a[aria-current="true"] {
  background: var(--cream-soft, #f4f1ea);
  color: var(--nav-corrente);
  font-weight: 600;
}

/* ── Accedi / Crea account ───────────────────────────────────────────────── */
.nav-auth { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nav-auth-link {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-soft, #3a3a38);
  text-decoration: none;
  padding: 9px 4px;
  white-space: nowrap;
  border-bottom: none;
}
.nav-auth-link:hover { color: var(--ink, #0f0f0f); }
.nav-auth-cta {
  font-size: 14px;
  font-weight: 600;
  color: var(--nav-cta-ink);
  background: var(--nav-cta-fondo);
  text-decoration: none;
  padding: 11px 18px;
  border-radius: 10px;
  white-space: nowrap;
  border-bottom: none;
  transition: background 0.18s var(--ease, cubic-bezier(.4, 0, .2, 1));
  /* 44px è la soglia sotto la quale un bersaglio tattile si sbaglia:
     misurata dal DOM il 10/08, questa CTA stava a 42. */
  min-height: 44px;
}
.nav-auth-cta:hover { background: var(--nav-cta-fondo-hover); }
.nav-auth-link:focus-visible, .nav-auth-cta:focus-visible {
  outline: 2px solid var(--primary, #1a3a5c);
  outline-offset: 2px;
}

/* ── Tasto del menù (telefono) ───────────────────────────────────────────── */
/* `position: static` e non `relative`, ed è la differenza fra un pannello a
   piena larghezza e uno largo 40px. Con `relative` il riquadro di riferimento
   per il pannello diventa il TASTO, quindi `left: 0; right: 0` lo stiravano
   fra i due lati di un quadrato di 40 pixel. Da statico, il riferimento sale
   alla barra, che essendo `sticky` è già un elemento posizionato. */
.nav-menu { display: none; position: static; }
.nav-menu > summary {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  /* 44 e non 40: sotto i 960px questo tasto È la navigazione, e 40 sta sotto
     il minimo che Apple e Google chiedono per un bersaglio da dito. Le tre
     barrette restano di 22px e la X continua a chiudersi, perché l'animazione
     si regola sul gap e non sul lato del quadrato. */
  width: 44px;
  height: 44px;
  border-radius: 8px;
  cursor: pointer;
  list-style: none;
}
.nav-menu > summary::-webkit-details-marker { display: none; }
.nav-menu > summary::marker { content: ""; }
.nav-menu > summary:hover { background: var(--cream-soft, #f4f1ea); }
.nav-menu > summary:focus-visible {
  outline: 2px solid var(--primary, #1a3a5c);
  outline-offset: 2px;
}
.ham-bar {
  width: 22px;
  height: 2px;
  background: var(--ink, #0f0f0f);
  border-radius: 2px;
  transition: transform 0.25s var(--ease, cubic-bezier(.4, 0, .2, 1)),
              opacity 0.2s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-menu[open] .ham-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-menu[open] .ham-bar:nth-child(2) { opacity: 0; }
.nav-menu[open] .ham-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Pannello del telefono ───────────────────────────────────────────────── */
/* Niente altezza fissa in pixel: ogni voce nuova la sfonderebbe e
   overflow:hidden mozzerebbe l'ultima, com'era successo con "Accedi". */
.nav-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--cream, #fafaf7);
  border-top: 1px solid var(--border, #d9d4ca);
  border-bottom: 1px solid var(--border, #d9d4ca);
  box-shadow: 0 20px 40px -12px rgba(15, 23, 42, 0.18);
  padding: 8px 0 20px;
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto;
}
.nav-panel-links { display: flex; flex-direction: column; }
.nav-panel-links a {
  padding: 16px 24px;
  font-size: 17px;
  font-weight: 500;
  color: var(--ink-soft, #3a3a38);
  text-decoration: none;
  border-bottom: none;
}
.nav-panel-links a:hover { background: var(--cream-soft, #f4f1ea); color: var(--ink, #0f0f0f); }
.nav-panel-links a[aria-current="page"] { color: var(--nav-corrente); font-weight: 600; }
.nav-panel-links a.nav-link-agency { color: var(--terracotta, #a14d3a); }

.nav-panel-lang { padding: 14px 24px 4px; }
.nav-panel-lang-et {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted, #6b675c);
  margin-bottom: 8px;
}
.nav-panel-lang-link { display: flex; flex-wrap: wrap; gap: 6px; }
.nav-panel-lang-link a {
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-soft, #3a3a38);
  text-decoration: none;
  background: var(--cream-soft, #f4f1ea);
  border-bottom: none;
}
.nav-panel-lang-link a[aria-current="true"] { color: var(--nav-corrente); font-weight: 600; }

.nav-panel-auth { display: flex; flex-direction: column; gap: 10px; padding: 18px 24px 0; }
.nav-panel-auth .nav-auth-link,
.nav-panel-auth .nav-auth-cta {
  display: block;
  text-align: center;
  padding: 14px;
  font-size: 16px;
  border-radius: 12px;
}
.nav-panel-auth .nav-auth-link { border: 1.5px solid var(--border, #d9d4ca); }

/* ── Sotto i 960px ───────────────────────────────────────────────────────── */
/* 960 e non 768: misurato, la barra in inglese con cinque voci, il selettore
   lingua e i due tasti dell'account chiede circa 900px. Fra 768 e 900 le voci
   andavano a capo a metà parola, e in italiano non si vedeva perché le
   etichette sono più corte. */

/* ── Le tendine ──────────────────────────────────────────────────────────── */
/* Sono <details>, come il selettore lingua: funzionano senza JavaScript e con
   la tastiera, e si chiudono con Esc grazie a `name="nav-tendine"` (gruppo
   esclusivo del browser). I token sono quelli della barra, non presi in
   prestito dai fogli della pagina: un componente condiviso che legge un token
   definito in un foglio solo è la deriva da cui nasce nav.css. */
.nav-voce { position: relative; }
.nav-voce > summary {
  display: flex; align-items: center; gap: 5px;
  font-size: 14px; font-weight: 500; color: var(--ink-soft, #3a3a38);
  cursor: pointer; list-style: none; white-space: nowrap; padding: 6px 0;
  transition: color 0.18s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-voce > summary::-webkit-details-marker { display: none; }
.nav-voce > summary::marker { content: ""; }
.nav-voce > summary:hover, .nav-voce[open] > summary { color: var(--ink, #0f0f0f); }
.nav-voce > summary:focus-visible { outline: 2px solid var(--primary, #1a3a5c); outline-offset: 3px; border-radius: 6px; }
.nav-chev { transition: transform 0.2s var(--ease, cubic-bezier(.4, 0, .2, 1)); }
.nav-voce[open] > summary .nav-chev { transform: rotate(180deg); }

.nav-tendina {
  position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%);
  width: min(330px, 78vw); z-index: 60;
  background: var(--cream, #fafaf7); border: 1px solid var(--border, #d9d4ca);
  border-radius: 16px; box-shadow: 0 18px 44px -22px rgba(15, 37, 61, 0.42); padding: 10px;
  animation: navScende 0.16s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-tendina-larga { width: min(560px, 78vw); }
@keyframes navScende { from { opacity: 0; transform: translateX(-50%) translateY(-6px); } }
.nav-tendina-griglia { display: grid; gap: 2px; }
.nav-tendina-larga .nav-tendina-griglia { grid-template-columns: 1fr 1fr; gap: 2px 6px; }

.nav-v {
  display: grid; grid-template-columns: 19px 1fr; gap: 0 12px; align-items: start;
  padding: 10px 12px; border-radius: 11px; text-decoration: none;
  transition: background 0.15s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-v:hover { background: var(--cream-soft, #f4f1ea); }
.nav-v:focus-visible { outline: 2px solid var(--primary, #1a3a5c); outline-offset: -2px; }
.nav-v-presto { opacity: 0.72; cursor: default; }
.nav-v-ico { color: var(--ink-muted, #6b675c); margin-top: 2px; }
.nav-v:hover .nav-v-ico { color: var(--nav-corrente); }
.nav-ico { display: block; width: 19px; height: 19px; }
.nav-v-testo { display: block; min-width: 0; }
.nav-v-t { display: flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 600; color: var(--ink, #0f0f0f); margin-bottom: 2px; }
.nav-v[aria-current="page"] .nav-v-t { color: var(--nav-corrente); }
.nav-v-d { display: block; white-space: normal; font-size: 12.5px; line-height: 1.45; color: var(--ink-muted, #6b675c); }
.nav-tag {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase;
  border-radius: 99px; padding: 2px 7px; white-space: nowrap;
}
.nav-tag-nuovo { color: var(--nav-cta-ink); background: var(--terracotta, #a14d3a); }
.nav-tag-presto { color: var(--nav-tag-ink); background: var(--nav-tag-fondo); border: 1px solid var(--border, #d9d4ca); }
.nav-coda {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px;
  margin-top: 6px; padding: 9px 12px 4px; border-top: 1px solid var(--border, #d9d4ca);
}
.nav-coda-t { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ink-soft, #3a3a38); }
.nav-coda-d { font-size: 12px; color: var(--ink-muted, #6b675c); }
/* Da quando /settori esiste la coda è un collegamento, non una scritta. */
.nav-coda-link { text-decoration: none; transition: background .16s var(--ease, cubic-bezier(.4,0,.2,1)); }
.nav-coda-link:hover { background: var(--cream-deep, #ece6d8); }
.nav-coda-link:focus-visible { outline: 2px solid var(--terracotta, #a14d3a); outline-offset: -2px; }
/* --primary è il blu da FONDO: usato come testo, in tema scuro faceva 4.33
   contro la soglia di 4.5. --primary-testo esiste per questo, e si schiarisce
   quando il tema si ribalta. Misurato dalla sonda su /wordpress il 20/08. */
.nav-coda-link .nav-coda-t { color: var(--primary-testo, #1a3a5c); }

.nav-piatta {
  font-size: 14px; font-weight: 500; color: var(--ink-soft, #3a3a38); text-decoration: none;
  white-space: nowrap; padding: 6px 0;
  transition: color 0.18s var(--ease, cubic-bezier(.4, 0, .2, 1));
}
.nav-piatta:hover { color: var(--ink, #0f0f0f); }
.nav-piatta[aria-current="page"] { color: var(--nav-corrente); font-weight: 700; }
.nav-piatta.nav-link-agency { color: var(--terracotta, #a14d3a); font-weight: 600; }

/* ── Gli stessi gruppi, nel pannello del telefono ────────────────────────── */
.nav-p-gruppo { border-bottom: 1px solid var(--border, #d9d4ca); }
.nav-p-gruppo:last-of-type { border-bottom: 0; }
.nav-p-gruppo > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-size: 15px; font-weight: 600; color: var(--ink, #0f0f0f);
  padding: 12px 24px; min-height: 44px; cursor: pointer; list-style: none;
}
.nav-p-gruppo > summary::-webkit-details-marker { display: none; }
.nav-p-gruppo > summary::marker { content: ""; }
.nav-p-sotto { display: grid; gap: 2px; padding: 0 24px 8px; }
.nav-p-v, .nav-p-piatta {
  display: flex; align-items: center; gap: 10px; min-height: 44px;
  font-size: 14.5px; color: var(--ink-soft, #3a3a38); text-decoration: none;
  padding: 8px 0; border-radius: 9px;
}
.nav-p-piatta { padding: 8px 24px; font-weight: 600; color: var(--ink, #0f0f0f); }
.nav-p-v .nav-v-ico, .nav-p-piatta .nav-v-ico { color: var(--ink-muted, #6b675c); margin-top: 0; }
.nav-p-v span, .nav-p-piatta span { display: flex; align-items: center; gap: 8px; }
.nav-p-piatta.nav-link-agency { color: var(--terracotta, #a14d3a); }

@media (max-width: 1180px) {
  .nav-v-d { display: none; }
  .nav-v { align-items: center; }
  .nav-v-ico { margin-top: 0; }
}

@media (max-width: 960px) {
  .nav-links, .nav-lang, .nav-auth { display: none; }
  .nav-tendina { display: none; }
  .nav-menu { display: block; margin-left: auto; }
}

/* ── Chi è collegato non vede la navigazione di marketing ─────────────────── */
/* In dashboard "Funzioni", "Prezzi" e "Blog" sono la vetrina del prodotto a
   qualcuno che l'ha già comprato: rubano spazio al chip dell'account e non
   portano da nessuna parte utile. Per tornare al sito c'è il logo.
   La classe la mette il JS della home; le pagine senza quel JS non la hanno
   mai, e mostrano la barra intera, che è il comportamento giusto per una
   pagina pubblica. */
body.is-logged-in .nav-links,
body.is-logged-in .nav-lang,
body.is-logged-in .nav-menu { display: none; }

/* ── Anti sfarfallio dell'account ─────────────────────────────────────────── */
/* La classe la mette in <body> la PAGINA che poi chiama /api/auth/me, e la
   tolgono setLoggedIn/setLoggedOut. Prima era `body:not(.auth-resolved)`,
   cioè al contrario: nascondeva finché qualcuno non dichiarava di aver
   risolto, e su una pagina senza quel codice non lo dichiarava nessuno. Su
   /wordpress la barra è rimasta invisibile per questo, con le voci presenti
   nell'HTML: il controllo sul sorgente diceva che c'erano.
   Le voci NON sono qui dentro: sono uguali per chi è dentro e per chi è
   fuori, quindi non c'è nessuno sfarfallio da prevenire. */
body.auth-in-corso .nav-auth,
body.auth-in-corso .nav-user { visibility: hidden; }

/* ── Tema scuro (REGOLA CSS-2: sempre in doppia forma) ───────────────────── */
/* rgba(20,24,28) è #14181c, cioè il --cream scuro dei due fogli: il velo della
   barra deve essere la pagina con un filo di trasparenza, non un grigio a
   caso. In scuro il bottone si SCHIARISCE per staccare dalla pagina, quindi
   il suo inchiostro si scurisce: è la regola delle isole, al contrario. */
[data-theme="dark"] {
  --nav-velo: rgba(20, 24, 28, 0.92);
  --nav-cta-fondo: #82a0c4;
  --nav-cta-fondo-hover: #9ab4d3;
  --nav-cta-ink: #0f0f0f;
  --nav-corrente: #9db4cd;   /* 8.36 sul fondo scuro */
  --nav-tag-ink: #cbc7bd;
  --nav-tag-fondo: #2a323b;
}
[data-theme="dark"] .nav-lang-menu,
[data-theme="dark"] .nav-panel { background: var(--cream-soft); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --nav-velo: rgba(20, 24, 28, 0.92);
    --nav-cta-fondo: #82a0c4;
    --nav-cta-fondo-hover: #9ab4d3;
    --nav-cta-ink: #0f0f0f;
    --nav-corrente: #9db4cd;
      --nav-tag-ink: #cbc7bd;
    --nav-tag-fondo: #2a323b;
  }
  :root:not([data-theme="light"]) .nav-lang-menu,
  :root:not([data-theme="light"]) .nav-panel { background: var(--cream-soft); }
}

@media (prefers-reduced-motion: reduce) {
  .ham-bar, .nav-lang-chev, .nav .brand-logo, .nav-links > a { transition: none; }
}

/* La voce della lingua nel pannello del telefono era alta 34px: è un comando
   che si tocca col dito, quindi 44. Misurato il 19/08. */
.nav-panel-lang-link a { display: flex; align-items: center; min-height: 44px; }
