/* Compliance Master — Compliance (barra cookie, contenuti bloccati, accessibilità)
 * Le variabili di aspetto (--cmaster-cc-*, --cmaster-a11y-*) sono scritte da PHP a partire
 * dalle impostazioni del pannello: qui ci sono solo i valori di ripiego. */

:root{
  --cmaster-cc-bg:#fff;
  --cmaster-cc-fg:var(--ink-700,#3a415c);
  --cmaster-cc-titolo:var(--blue-800,#123a75);
  --cmaster-cc-azione:var(--blue-600,#2273d1);
  --cmaster-cc-azione-fg:#fff;
  --cmaster-cc-raggio:18px;
  --cmaster-cc-larghezza:460px;
  --cmaster-cc-ombra:0 18px 48px rgba(11,36,71,.22);
  --cmaster-a11y-colore:var(--blue-600,#2273d1);
  --cmaster-a11y-icona:#fff;
  --cmaster-a11y-dim:56px;
  --cmaster-a11y-x:20px;
  --cmaster-a11y-y:20px;
}

/* Testo per i soli lettori di schermo. Non tutti i temi lo definiscono: serve qui e
 * ovunque un pulsante abbia solo un'icona. */
.screen-reader-text{
  position:absolute !important;
  width:1px;height:1px;
  margin:-1px;padding:0;border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

/* ======================================================= BARRA COOKIE */

.cmaster-cc{
  position:fixed;
  z-index:100000; /* Sopra gli header fissi dei temi. */
  inset:auto 0 0 0;
  font-family:var(--font-body,system-ui,sans-serif);
  color:var(--cmaster-cc-fg);
}
.cmaster-cc[hidden]{display:none;}

.cmaster-cc__velo{
  position:fixed;inset:0;
  background:rgba(11,36,71,.45);
  /* Il velo oscura ma non blocca: la pagina resta leggibile e scorribile,
   * come chiedono le linee guida del Garante. */
  pointer-events:none;
}

.cmaster-cc__box{
  position:relative;
  margin:0 auto 20px;
  width:min(calc(100vw - 32px),var(--cmaster-cc-larghezza));
  max-height:min(84vh,760px);
  overflow-y:auto;
  padding:24px;
  background:var(--cmaster-cc-bg);
  border-radius:var(--cmaster-cc-raggio);
  box-shadow:var(--cmaster-cc-ombra);
  animation:cmaster-cc-entra .32s cubic-bezier(.22,.61,.36,1) both;
}
.cmaster-cc__box:focus{outline:none;}
.cmaster-cc__box:focus-visible{outline:3px solid var(--cmaster-cc-azione);outline-offset:3px;}

@keyframes cmaster-cc-entra{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}

/* Forma e posizione. La barra occupa tutta la riga, il riquadro si appoggia a
 * un angolo, la finestra centrale si mette in mezzo allo schermo. */
.cmaster-cc--barra .cmaster-cc__box{width:min(calc(100vw - 32px),1180px);}
.cmaster-cc--pos-alto{inset:0 0 auto 0;}
.cmaster-cc--pos-alto .cmaster-cc__box{margin:20px auto 0;}
.cmaster-cc--pos-basso-sx .cmaster-cc__box{margin-left:20px;margin-right:auto;}
.cmaster-cc--pos-basso-dx .cmaster-cc__box{margin-right:20px;margin-left:auto;}
.cmaster-cc--pos-centro,.cmaster-cc--centro{inset:0;display:flex;align-items:center;justify-content:center;}
.cmaster-cc--pos-centro .cmaster-cc__box,.cmaster-cc--centro .cmaster-cc__box{margin:0;}

.cmaster-cc__titolo{
  margin:0 0 10px;
  font-family:var(--font-display,inherit);
  font-size:1.25rem;font-weight:800;line-height:1.25;
  color:var(--cmaster-cc-titolo);
}
.cmaster-cc__testo{font-size:.94rem;line-height:1.6;}
.cmaster-cc__testo p{margin:0;}
.cmaster-cc__link{margin:12px 0 0;font-size:.85rem;}
.cmaster-cc__link a{color:var(--cmaster-cc-azione);text-decoration:underline;}

/* --- pannello di dettaglio --- */
.cmaster-cc__pannello{
  margin-top:18px;padding-top:18px;
  border-top:1px solid rgba(0,0,0,.1);
}
.cmaster-cc__pannello[hidden]{display:none;}
.cmaster-cc__pannello-titolo{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--cmaster-cc-titolo);}
.cmaster-cc__pannello-testo{margin:0 0 14px;font-size:.85rem;opacity:.85;}

.cmaster-cc__cat{padding:12px 0;border-bottom:1px solid rgba(0,0,0,.07);}
.cmaster-cc__cat:last-child{border-bottom:0;}
.cmaster-cc__cat-riga{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;font-size:.95rem;}
.cmaster-cc__cat-riga input{width:18px;height:18px;accent-color:var(--cmaster-cc-azione);flex:0 0 auto;}
.cmaster-cc__cat-riga input:disabled{cursor:not-allowed;opacity:.6;}
.cmaster-cc__cat-nome{color:var(--cmaster-cc-titolo);}
.cmaster-cc__cat-badge{
  margin-left:auto;padding:3px 9px;
  font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:rgba(87,168,60,.14);color:var(--green-700,#478a30);
  border-radius:999px;
}
.cmaster-cc__cat-desc{margin:6px 0 0 28px;font-size:.82rem;line-height:1.5;opacity:.85;}
.cmaster-cc__cat-servizi{margin:6px 0 0 28px;font-size:.75rem;opacity:.6;}

/* --- pulsanti --- */
.cmaster-cc__azioni{
  display:flex;flex-wrap:wrap;gap:10px;
  margin-top:20px;
}
.cmaster-cc__btn{
  flex:1 1 auto;min-width:120px;
  padding:12px 18px;
  font:inherit;font-weight:700;font-size:.92rem;
  border:2px solid transparent;border-radius:999px;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.cmaster-cc__btn:hover{transform:translateY(-1px);}
.cmaster-cc__btn:focus-visible{outline:3px solid var(--cmaster-cc-azione);outline-offset:3px;}
.cmaster-cc__btn[hidden]{display:none;}

/* Accettare e rifiutare hanno lo stesso peso visivo: è un requisito, non una
 * scelta di gusto. Cambia solo il colore, non la dimensione né il rilievo. */
.cmaster-cc__btn--accetta{background:var(--cmaster-cc-azione);color:var(--cmaster-cc-azione-fg);}
.cmaster-cc__btn--rifiuta{background:transparent;color:var(--cmaster-cc-fg);border-color:currentColor;}
.cmaster-cc__btn--salva{background:var(--green-600,#57a83c);color:#fff;}
.cmaster-cc__btn--ghost{
  flex:0 1 auto;
  background:transparent;color:var(--cmaster-cc-fg);
  border:0;text-decoration:underline;font-weight:600;
}

/* --- linguetta permanente --- */
.cmaster-cc-linguetta{
  position:fixed;bottom:20px;z-index:99998;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;
  font:inherit;font-size:.82rem;font-weight:600;
  color:#fff;background:var(--blue-800,#123a75);
  border:0;border-radius:999px;
  box-shadow:0 8px 24px rgba(11,36,71,.28);
  cursor:pointer;
  transition:transform .2s ease;
}
.cmaster-cc-linguetta[hidden]{display:none;}
.cmaster-cc-linguetta:hover{transform:translateY(-2px);}
.cmaster-cc-linguetta:focus-visible{outline:3px solid var(--blue-300,#7ec3ee);outline-offset:3px;}
.cmaster-cc-linguetta--basso-sx{left:20px;}
.cmaster-cc-linguetta--basso-dx{right:20px;}
.cmaster-cc-linguetta__icona{display:inline-flex;}

/* Sul telefono resta la sola icona: la linguetta non deve coprire i contenuti. */
@media (max-width:600px){
  .cmaster-cc-linguetta__testo{
    position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
  }
  .cmaster-cc-linguetta{padding:12px;}
  .cmaster-cc__box{padding:20px;}
  .cmaster-cc__btn{flex:1 1 100%;}
}

/* Un tema che porta «Preferenze cookie» dentro il proprio menu mobile (con un
 * elemento `data-cmaster-cookie-apri`) aggiunge al body la classe
 * `cmaster-voci-nel-menu`: allora sotto i 940px la linguetta sparisce. Senza
 * quella classe resta sempre, perché revocare il consenso dev'essere facile. */
@media (max-width:940px){
  body.cmaster-voci-nel-menu .cmaster-cc-linguetta{display:none;}
}

/* Se il pannello di accessibilità sta nello stesso angolo, la linguetta si
 * sposta sopra invece di finirci sotto. */
.cmaster-a11y--basso-sx ~ .cmaster-cc-linguetta--basso-sx,
.cmaster-a11y--basso-dx ~ .cmaster-cc-linguetta--basso-dx{bottom:calc(var(--cmaster-a11y-y) + var(--cmaster-a11y-dim) + 14px);}

/* ================================================= CONTENUTI BLOCCATI */

.cmaster-cc-bloccato{
  display:flex;align-items:center;justify-content:center;
  min-height:220px;
  padding:28px 20px;
  background:var(--mist,#f4f8fc);
  border:1px dashed var(--border-strong,#7ec3ee);
  border-radius:16px;
  text-align:center;
}
.cmaster-cc-bloccato__box{max-width:460px;}
.cmaster-cc-bloccato__servizio{
  margin:0 0 6px;
  font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blue-600,#2273d1);
}
.cmaster-cc-bloccato__testo{margin:0 0 16px;font-size:.9rem;line-height:1.55;color:var(--ink-700,#3a415c);}
.cmaster-cc-bloccato__btn{
  padding:11px 20px;
  font:inherit;font-weight:700;font-size:.88rem;
  color:#fff;background:var(--blue-600,#2273d1);
  border:0;border-radius:999px;cursor:pointer;
}
.cmaster-cc-bloccato__btn:hover{background:var(--action-primary-hover,#1b63ba);}
.cmaster-cc-bloccato__link{
  display:block;margin:10px auto 0;
  font:inherit;font-size:.8rem;
  color:var(--ink-500,#6b7390);background:none;border:0;
  text-decoration:underline;cursor:pointer;
}

/* Pulsante «gestisci preferenze» dentro la Cookie Policy. */
.cmaster-cookie-riapri{
  padding:11px 20px;
  font:inherit;font-weight:700;
  color:#fff;background:var(--blue-600,#2273d1);
  border:0;border-radius:999px;cursor:pointer;
}

/* ================================================= PAGINE LEGALI */

.cmaster-legale{line-height:1.7;}
.cmaster-legale h2{margin:2em 0 .6em;font-family:var(--font-display,inherit);font-size:1.5rem;color:var(--blue-800,#123a75);}
.cmaster-legale h3{margin:1.6em 0 .5em;font-size:1.12rem;color:var(--blue-700,#1b57a8);}
.cmaster-legale ul{padding-left:1.3em;}
.cmaster-legale li{margin-bottom:.4em;}

.cmaster-cookie-tabella__wrap{overflow-x:auto;margin:14px 0 26px;}
.cmaster-cookie-tabella{width:100%;min-width:640px;border-collapse:collapse;font-size:.88rem;}
.cmaster-cookie-tabella th,.cmaster-cookie-tabella td{
  padding:10px 12px;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--border-subtle,#dde7f2);
}
.cmaster-cookie-tabella th{
  background:var(--mist,#f4f8fc);
  font-weight:700;color:var(--blue-800,#123a75);
  white-space:nowrap;
}
.cmaster-cookie-tabella code{font-size:.85em;word-break:break-word;}
.cmaster-cookie-tabella small{color:var(--ink-500,#6b7390);}

.cmaster-privacy-breve{font-size:.85rem;color:var(--ink-500,#6b7390);}

/* ================================================= ACCESSIBILITÀ — UI */

.cmaster-skip-link{
  position:absolute;left:-9999px;top:0;z-index:100001;
  padding:12px 20px;
  font-weight:700;
  color:#fff;background:var(--blue-800,#123a75);
  border-radius:0 0 10px 0;
}
.cmaster-skip-link:focus{left:0;}

.cmaster-a11y{position:fixed;z-index:99999;}
.cmaster-a11y--basso-dx{right:var(--cmaster-a11y-x);bottom:var(--cmaster-a11y-y);}
.cmaster-a11y--basso-sx{left:var(--cmaster-a11y-x);bottom:var(--cmaster-a11y-y);}
.cmaster-a11y--medio-dx{right:var(--cmaster-a11y-x);top:50%;transform:translateY(-50%);}
.cmaster-a11y--medio-sx{left:var(--cmaster-a11y-x);top:50%;transform:translateY(-50%);}

@media (max-width:600px){
  .cmaster-a11y--no-mobile{display:none;}
}

.cmaster-a11y__toggle{
  display:flex;align-items:center;justify-content:center;
  width:var(--cmaster-a11y-dim);height:var(--cmaster-a11y-dim);
  color:var(--cmaster-a11y-icona);background:var(--cmaster-a11y-colore);
  border:0;border-radius:50%;
  box-shadow:0 8px 24px rgba(11,36,71,.3);
  cursor:pointer;
  transition:transform .2s ease;
}
.cmaster-a11y__toggle:hover{transform:scale(1.06);}
.cmaster-a11y__toggle:focus-visible{outline:3px solid var(--cmaster-a11y-colore);outline-offset:4px;}

.cmaster-a11y__pannello{
  position:absolute;bottom:calc(var(--cmaster-a11y-dim) + 14px);
  width:min(calc(100vw - 32px),340px);
  max-height:min(72vh,620px);
  overflow-y:auto;
  padding:18px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 18px 48px rgba(11,36,71,.26);
  animation:cmaster-cc-entra .24s ease both;
}
.cmaster-a11y__pannello[hidden]{display:none;}
.cmaster-a11y--basso-dx .cmaster-a11y__pannello,.cmaster-a11y--medio-dx .cmaster-a11y__pannello{right:0;}
.cmaster-a11y--basso-sx .cmaster-a11y__pannello,.cmaster-a11y--medio-sx .cmaster-a11y__pannello{left:0;}
.cmaster-a11y--medio-dx .cmaster-a11y__pannello,.cmaster-a11y--medio-sx .cmaster-a11y__pannello{bottom:auto;top:0;}

/* Come per i cookie: con `cmaster-voci-nel-menu` sul body, sul telefono niente
 * tasto tondo flottante, si apre dalla voce `data-cmaster-a11y-apri` del menu del
 * tema. Il pannello resta e scende nell'angolo, visto che sopra non c'è più
 * nulla. */
@media (max-width:940px){
  body.cmaster-voci-nel-menu .cmaster-a11y__toggle{display:none;}
  body.cmaster-voci-nel-menu .cmaster-a11y--basso-dx .cmaster-a11y__pannello,
  body.cmaster-voci-nel-menu .cmaster-a11y--basso-sx .cmaster-a11y__pannello{bottom:0;}
}

.cmaster-a11y__testata{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.cmaster-a11y__titolo{
  margin:0;flex:1;
  font-family:var(--font-display,inherit);font-size:1.05rem;font-weight:800;
  color:var(--blue-800,#123a75);
}
.cmaster-a11y__chiudi{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;
  color:var(--ink-500,#6b7390);background:transparent;
  border:0;border-radius:50%;cursor:pointer;
}
.cmaster-a11y__chiudi:hover{background:var(--mist,#f4f8fc);}

.cmaster-a11y__lista{list-style:none;margin:0;padding:0;display:grid;gap:6px;}
.cmaster-a11y__strumento{
  display:flex;align-items:flex-start;gap:11px;width:100%;
  padding:11px 12px;
  font:inherit;text-align:left;
  color:var(--ink-700,#3a415c);background:var(--mist,#f4f8fc);
  border:2px solid transparent;border-radius:12px;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease;
}
.cmaster-a11y__strumento:hover{background:var(--blue-50,#eef6fc);}
.cmaster-a11y__strumento:focus-visible{outline:3px solid var(--cmaster-a11y-colore);outline-offset:2px;}
.cmaster-a11y__strumento.is-attivo{
  background:var(--blue-50,#eef6fc);
  border-color:var(--cmaster-a11y-colore);
}
.cmaster-a11y__icona{flex:0 0 auto;display:inline-flex;color:var(--cmaster-a11y-colore);}
.cmaster-a11y__testi{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cmaster-a11y__nome{font-weight:700;font-size:.9rem;}
.cmaster-a11y__desc{font-size:.76rem;line-height:1.4;opacity:.78;}
.cmaster-a11y__livello{
  margin-left:auto;flex:0 0 auto;
  font-size:.72rem;font-weight:800;
  color:var(--cmaster-a11y-colore);
}

.cmaster-a11y__pie{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px;}
.cmaster-a11y__reset{
  padding:9px 16px;
  font:inherit;font-size:.82rem;font-weight:700;
  color:var(--ink-700,#3a415c);background:transparent;
  border:2px solid currentColor;border-radius:999px;cursor:pointer;
}
.cmaster-a11y__dichiarazione{font-size:.78rem;text-decoration:underline;}
.cmaster-a11y__nota{margin:10px 0 0;font-size:.72rem;opacity:.6;line-height:1.4;}

/* Guida di lettura: una banda che segue il puntatore. */
.cmaster-a11y-guida{
  position:fixed;left:0;top:0;z-index:99997;
  width:100%;height:52px;
  margin-top:-26px;
  border-top:2px solid rgba(11,36,71,.75);
  border-bottom:2px solid rgba(11,36,71,.75);
  background:rgba(34,115,209,.1);
  pointer-events:none;
}

/* ============================================ ACCESSIBILITÀ — STRUMENTI */

/* Dimensione del testo. Si agisce sui token del design system (la fonte di
 * verità delle misure) e sulla radice, così tutto ciò che è espresso in rem o
 * in var(--text-*) cresce insieme. Il testo scritto in px dentro un widget
 * resta com'è: è il limite di questo approccio, e va bene così — meglio che
 * uno zoom che ingrandisce anche le fotografie. */
html.cmaster-a11y-testo{font-size:calc(100% * var(--cmaster-a11y-scala,1));}
html.cmaster-a11y-testo-1{--cmaster-a11y-scala:1.15;}
html.cmaster-a11y-testo-2{--cmaster-a11y-scala:1.3;}
html.cmaster-a11y-testo-3{--cmaster-a11y-scala:1.5;}
html.cmaster-a11y-testo body{
  --text-h1:calc(40px * var(--cmaster-a11y-scala));
  --text-h2:calc(30px * var(--cmaster-a11y-scala));
  --text-h3:calc(22px * var(--cmaster-a11y-scala));
  --text-lg:calc(18px * var(--cmaster-a11y-scala));
  --text-base:calc(16px * var(--cmaster-a11y-scala));
  --text-sm:calc(14px * var(--cmaster-a11y-scala));
  --text-xs:calc(12px * var(--cmaster-a11y-scala));
}

/* Spaziatura: i valori del criterio WCAG 1.4.12 al primo scatto, il doppio al
 * secondo. Applicata al testo e non ai contenitori, per non sfasciare i layout. */
html.cmaster-a11y-interlinea body :is(p,li,dd,dt,td,th,figcaption,blockquote,label){
  line-height:calc(1.5 * var(--cmaster-a11y-spazio,1)) !important;
  letter-spacing:calc(.12em * var(--cmaster-a11y-spazio,1)) !important;
  word-spacing:calc(.16em * var(--cmaster-a11y-spazio,1)) !important;
}
html.cmaster-a11y-interlinea-1{--cmaster-a11y-spazio:1;}
html.cmaster-a11y-interlinea-2{--cmaster-a11y-spazio:1.35;}

/* Carattere leggibile: nessun font da scaricare (sarebbe una richiesta a un
 * server esterno proprio nel modulo che li vuole evitare), ma la combinazione
 * di forme aperte e spaziatura che aiuta davvero chi ha dislessia. */
html.cmaster-a11y-dislessia body,
html.cmaster-a11y-dislessia body :is(p,li,a,span,td,th,label,button,input,textarea,h1,h2,h3,h4,h5,h6){
  font-family:Verdana,Tahoma,"Trebuchet MS",sans-serif !important;
  letter-spacing:.03em !important;
  word-spacing:.08em !important;
}

/* Contrasto elevato. */
html.cmaster-a11y-contrasto body{background:#fff !important;color:#000 !important;}
html.cmaster-a11y-contrasto body :is(section,div,article,aside,header,footer,nav,li){
  background-color:transparent !important;
  background-image:none !important;
  text-shadow:none !important;
}
html.cmaster-a11y-contrasto body :is(p,li,span,td,th,dd,dt,figcaption,blockquote,label,h1,h2,h3,h4,h5,h6,strong,em){
  color:#000 !important;
}
html.cmaster-a11y-contrasto body a{color:#00309e !important;text-decoration:underline !important;}
html.cmaster-a11y-contrasto body :is(button,.button,.wp-element-button,.wp-block-button__link,.cmaster-cc__btn){
  color:#fff !important;background:#00309e !important;border-color:#00309e !important;
}

/* Colori invertiti e scala di grigi.
 * Il filtro sull'elemento radice rende la radice il blocco contenitore dei
 * fissi: un header `position:fixed` del tema smette di restare in cima. Il
 * tema può rimediare rendendolo `sticky` sotto `html.cmaster-a11y-inverti` e
 * `html.cmaster-a11y-grigi`. */
html.cmaster-a11y-grigi{filter:grayscale(1);}
html.cmaster-a11y-inverti{filter:invert(1) hue-rotate(180deg);}
html.cmaster-a11y-grigi.cmaster-a11y-inverti{filter:grayscale(1) invert(1) hue-rotate(180deg);}
html.cmaster-a11y-inverti :is(img,video,iframe,svg image,[style*="background-image"]){
  filter:invert(1) hue-rotate(180deg);
}

/* Collegamenti in risalto. */
html.cmaster-a11y-link body a{
  text-decoration:underline !important;
  text-underline-offset:3px;
  text-decoration-thickness:2px !important;
  outline:1px dotted currentColor;
  outline-offset:2px;
}

/* Animazioni ferme. */
html.cmaster-a11y-statico *,
html.cmaster-a11y-statico *::before,
html.cmaster-a11y-statico *::after{
  animation:none !important;
  transition:none !important;
  scroll-behavior:auto !important;
}

/* Puntatore grande. */
html.cmaster-a11y-cursore,
html.cmaster-a11y-cursore *{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='m5 3 6 17 2.5-6.5L20 11Z' fill='%23fff' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") 4 4,auto;
}
html.cmaster-a11y-cursore a,
html.cmaster-a11y-cursore button{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M9 3v9L6.5 9.5 5 11l4.5 8h7l2-8-4-1V3Z' fill='%23fff' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") 8 4,pointer;
}

/* Fuoco tastiera marcato (a richiesta del visitatore). */
html.cmaster-a11y-focus :is(a,button,input,select,textarea,[tabindex]):focus{
  outline:4px solid #ff6a00 !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 3px #fff !important;
}

/* =================================== CORREZIONI SEMPRE ATTIVE (per tutti) */

/* Fuoco visibile: non sostituisce lo stile del tema, garantisce che ci sia. */
body.cmaster-focus-visibile :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--action-primary,#2273d1);
  outline-offset:3px;
  border-radius:4px;
}

/* Chi ha chiesto meno animazioni al sistema operativo soffre di vertigini con
 * i movimenti: non è una preferenza estetica. */
@media (prefers-reduced-motion:reduce){
  body.cmaster-rispetta-motion *,
  body.cmaster-rispetta-motion *::before,
  body.cmaster-rispetta-motion *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .cmaster-cc__box,.cmaster-a11y__pannello{animation:none;}
}
