/* CSS custom per accessibilità. Qui puoi aggiungere regole per:
- Contrasto elevato
- Modalità notturna
- Filtro luce blu
- Cursore gigante
- Spotlight
- Evidenzia cliccabili
- Nascondi immagini/animazioni
*/

/* Esempio base per spotlight (da completare in JS): */
.wcag-spotlight-overlay {
  pointer-events: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 99998;
  border-top: 2px solid red;
  border-bottom: 2px solid red;
  border-left: none;
  border-right: none;
}

body.wcag-high-contrast {
  background: #fff !important;
  color: #000 !important;
}
body.wcag-high-contrast a, body.wcag-high-contrast button, body.wcag-high-contrast input, body.wcag-high-contrast select {
  color: #000 !important;
  background: #fff !important;
  border: 2px solid #000 !important;
}

/* Contrasto elevato: titoli */
body.wcag-high-contrast h1,
body.wcag-high-contrast h2,
body.wcag-high-contrast h3,
body.wcag-high-contrast h4,
body.wcag-high-contrast h5,
body.wcag-high-contrast h6 {
  color: #000 !important;
  background: #fff !important;
}

body.wcag-dark-mode {
  background: #181818 !important;
  color: #eee !important;
}
body.wcag-dark-mode a, body.wcag-dark-mode button, body.wcag-dark-mode input, body.wcag-dark-mode select {
  color: #fff !important;
  background: #222 !important;
  border: 1px solid #444 !important;
}

/* Modalità notturna: titoli */
body.wcag-dark-mode h1,
body.wcag-dark-mode h2,
body.wcag-dark-mode h3,
body.wcag-dark-mode h4,
body.wcag-dark-mode h5,
body.wcag-dark-mode h6 {
  color: #eee !important;
  background: #181818 !important;
}

body.wcag-hide-images img, body.wcag-hide-images picture, body.wcag-hide-images figure {
  display: none !important;
}

body.wcag-hide-animations *, body.wcag-hide-animations *:before, body.wcag-hide-animations *:after {
  animation: none !important;
  transition: none !important;
}

body.wcag-highlight-clickable a, body.wcag-highlight-clickable button, body.wcag-highlight-clickable input[type=submit], body.wcag-highlight-clickable [role=button] {
  outline: 3px solid #f00 !important;
  box-shadow: 0 0 0 2px #f00 !important;
}

/* Spotlight overlay verticale con linee rosse subito sopra e sotto */
.wcag-spotlight-overlay {
  pointer-events: none;
  position: fixed;
  left: 0; right: 0;
  z-index: 99998;
  height: 100px;
  /* la posizione top viene gestita da JS */
}
.wcag-spotlight-line {
  position: fixed;
  left: 0; right: 0;
  height: 2px;
  background: #f00;
  z-index: 99999;
  pointer-events: none;
}

/* Fix universale: il filtro daltonismo viene applicato solo al contenuto, MAI agli elementi di accessibilità */
#wcag-accessibility-root {
  position: relative !important;
  z-index: 1;
}
body.wcag-protanopia #wcag-accessibility-root,
body.wcag-deuteranopia #wcag-accessibility-root,
body.wcag-tritanopia #wcag-accessibility-root {
  filter: url(#protanopia);
  /* fallback: */
  filter: grayscale(0.5) contrast(1.2) sepia(0.7) hue-rotate(-30deg);
}
body.wcag-deuteranopia #wcag-accessibility-root {
  filter: url(#deuteranopia);
  filter: grayscale(0.5) contrast(1.2) sepia(0.7) hue-rotate(30deg);
}
body.wcag-tritanopia #wcag-accessibility-root {
  filter: url(#tritanopia);
  filter: grayscale(0.5) contrast(1.2) sepia(0.7) hue-rotate(90deg);
}

/* Disabilita il filtro su bottone e offcanvas */
#wcag-accessibility-btn,
#wcag-accessibility-offcanvas,
.uk-offcanvas-bar {
  filter: none !important;
  position: fixed !important;
  z-index: 99999 !important;
}

/* Fix: mantieni posizione fixed e z-index per bottone e offcanvas anche con filtri daltonismo attivi */
body.wcag-protanopia #wcag-accessibility-btn,
body.wcag-deuteranopia #wcag-accessibility-btn,
body.wcag-tritanopia #wcag-accessibility-btn {
  position: fixed !important;
  bottom: 115px !important;
  right: 30px !important;
  z-index: 99999 !important;
  filter: none !important;
}
body.wcag-protanopia #wcag-accessibility-offcanvas,
body.wcag-deuteranopia #wcag-accessibility-offcanvas,
body.wcag-tritanopia #wcag-accessibility-offcanvas {
  position: fixed !important;
  z-index: 99998 !important;
  filter: none !important;
}
body.wcag-protanopia .uk-offcanvas-bar,
body.wcag-deuteranopia .uk-offcanvas-bar,
body.wcag-tritanopia .uk-offcanvas-bar {
  position: fixed !important;
  filter: none !important;
}

/* Disabilita il filtro solo sugli elementi di accessibilità per evitare che il filter del body li renda non fixed */
#wcag-accessibility-btn, #wcag-accessibility-offcanvas, .uk-offcanvas-bar {
  filter: none !important;
}

/* Contrasto elevato: override su sezioni UIkit e navbar */
body.wcag-high-contrast .uk-section,
body.wcag-high-contrast .uk-section-default,
body.wcag-high-contrast .uk-section-primary,
body.wcag-high-contrast .uk-section-secondary,
body.wcag-high-contrast .uk-navbar,
body.wcag-high-contrast .uk-navbar-container {
  background: #fff !important;
  color: #000 !important;
}
body.wcag-high-contrast .uk-navbar-nav > li > a,
body.wcag-high-contrast .uk-navbar-item,
body.wcag-high-contrast .uk-navbar-toggle {
  color: #000 !important;
}
body.wcag-high-contrast .uk-navbar-nav > li.uk-active > a,
body.wcag-high-contrast .uk-navbar-nav > li > a:focus,
body.wcag-high-contrast .uk-navbar-nav > li > a:hover {
  color: #000 !important;
  background: #fff !important;
}

/* Modalità notturna: override su sezioni UIkit e navbar */
body.wcag-dark-mode .uk-section,
body.wcag-dark-mode .uk-section-default,
body.wcag-dark-mode .uk-section-primary,
body.wcag-dark-mode .uk-section-secondary,
body.wcag-dark-mode .uk-navbar,
body.wcag-dark-mode .uk-navbar-container {
  background: #181818 !important;
  color: #eee !important;
}
body.wcag-dark-mode .uk-navbar-nav > li > a,
body.wcag-dark-mode .uk-navbar-item,
body.wcag-dark-mode .uk-navbar-toggle {
  color: #eee !important;
}
body.wcag-dark-mode .uk-navbar-nav > li.uk-active > a,
body.wcag-dark-mode .uk-navbar-nav > li > a:focus,
body.wcag-dark-mode .uk-navbar-nav > li > a:hover {
  color: #fff !important;
  background: #222 !important;
}

/* Migliora contrasto anche su pulsanti e input in modalità accessibilità */
body.wcag-high-contrast button,
body.wcag-high-contrast input,
body.wcag-high-contrast textarea,
body.wcag-high-contrast select {
  background: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}
body.wcag-dark-mode button,
body.wcag-dark-mode input,
body.wcag-dark-mode textarea,
body.wcag-dark-mode select {
  background: #222 !important;
  color: #eee !important;
  border: 1px solid #444 !important;
}

/* Fix: quando si seleziona "Nessuno" daltonismo, ripristina il filter:none solo su bottone e offcanvas */
body:not(.wcag-protanopia):not(.wcag-deuteranopia):not(.wcag-tritanopia) #wcag-accessibility-btn,
body:not(.wcag-protanopia):not(.wcag-deuteranopia):not(.wcag-tritanopia) #wcag-accessibility-offcanvas,
body:not(.wcag-protanopia):not(.wcag-deuteranopia):not(.wcag-tritanopia) .uk-offcanvas-bar {
  filter: none !important;
  position: fixed !important;
  z-index: 99999 !important;
}

/* Fix definitivo: escludi SEMPRE il filtro daltonismo da bottone e offcanvas accessibilità */
#wcag-accessibility-btn,
#wcag-accessibility-offcanvas,
.uk-offcanvas-bar {
  filter: none !important;
  position: fixed !important;
  z-index: 99999 !important;
}

body.wcag-protanopia #wcag-accessibility-btn,
body.wcag-deuteranopia #wcag-accessibility-btn,
body.wcag-tritanopia #wcag-accessibility-btn,
body.wcag-protanopia #wcag-accessibility-offcanvas,
body.wcag-deuteranopia #wcag-accessibility-offcanvas,
body.wcag-tritanopia #wcag-accessibility-offcanvas,
body.wcag-protanopia .uk-offcanvas-bar,
body.wcag-deuteranopia .uk-offcanvas-bar,
body.wcag-tritanopia .uk-offcanvas-bar {
  filter: none !important;
  position: fixed !important;
  z-index: 99999 !important;
}

body.wcag-protanopia #wcag-accessibility-btn,
body.wcag-deuteranopia #wcag-accessibility-btn,
body.wcag-tritanopia #wcag-accessibility-btn {
  bottom: 115px !important;
  right: 30px !important;
}

/* Checkbox e radio come pulsanti con icona RemixIcon */
.wcag-access-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2em;
  width: 100%;
  min-width: 90px;
  max-width: 160px;
  padding: 0.7em 0.2em 0.5em 0.2em;
  border-radius: 8px;
  border: 2px solid #ccc;
  background: #f7f7f7;
  color: #222;
  font-weight: 500;
  cursor: pointer;
  margin: 0.3em 0.3em 0.3em 0;
  transition: background 0.2s, border 0.2s, color 0.2s;
  text-align: center;
}
.wcag-access-btn .ri {
  font-size: 2em;
  margin: 0 0 0.2em 0;
  display: block;
}
.wcag-access-btn span {
  font-size: 1em;
  margin: 0;
  display: block;
}
.wcag-access-btn input[type="checkbox"],
.wcag-access-btn input[type="radio"] {
  display: none;
}
.wcag-access-btn.active,
.wcag-access-btn input:checked + .ri {
  background: #222;
  color: #fff;
  border-color: #222;
}
.wcag-access-btn input:checked + .ri {
  color: #fff;
}
.wcag-access-btn:hover {
  border-color: #888;
}
.wcag-access-btn input:checked ~ span,
.wcag-access-btn input:checked ~ .ri {
  color: #fff;
}

/* Griglia 2 colonne per i gruppi di pulsanti accessibilità */
.wcag-access-btn-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1em 1em;
  margin-bottom: 0.5em;
}
.wcag-access-btn {
  min-height: 110px;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  justify-content: flex-start;
}

#wcag-accessibility-btn {
  position: fixed !important;
  right: 30px !important;
  bottom: 115px !important;
  z-index: 99999 !important;
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 2rem !important;
}

/* Font dislessia: applica OpenDyslexic (o fallback Arial) a tutto il sito quando attivo */
body.wcag-dyslexia-font, body.wcag-dyslexia-font * {
    font-family: 'OpenDyslexic', 'Arial', 'Helvetica Neue', Arial, Helvetica, sans-serif !important;
    letter-spacing: 0.05em !important;
}
body.wcag-dyslexia-font .ri, body.wcag-dyslexia-font [class^="ri-"] {
    font-family: 'remixicon' !important;
    font-style: normal !important;
    font-weight: normal !important;
    letter-spacing: normal !important;
}#ez-toc-container{background:#F9F9F9;border:1px solid #AAA;border-radius:4px;-webkit-box-shadow:0 1px 1px rgb(0 0 0 / .05);box-shadow:0 1px 1px rgb(0 0 0 / .05);display:table;margin-bottom:1em;padding-top:10px;padding-right:20px;padding-bottom:10px;padding-left:10px;position:relative;width:auto}div.ez-toc-widget-container{padding:0;position:relative}#ez-toc-container.ez-toc-light-blue{background:#EDF6FF}#ez-toc-container.ez-toc-white{background:#FFF}#ez-toc-container.ez-toc-black{background:#000}#ez-toc-container.ez-toc-transparent{background:none #fff0}div.ez-toc-widget-container ul{display:block}div.ez-toc-widget-container li{border:none;padding:0}div.ez-toc-widget-container ul.ez-toc-list{padding:10px}#ez-toc-container ul ul,.ez-toc div.ez-toc-widget-container ul ul{margin-left:1.5em}#ez-toc-container ul,#ez-toc-container li{margin:0;padding:0}#ez-toc-container ul,#ez-toc-container li,#ez-toc-container ul li,div.ez-toc-widget-container,div.ez-toc-widget-container li{background:none;list-style:none none;line-height:1.6;margin:0;overflow:hidden;z-index:1}#ez-toc-container .ez-toc-title{text-align:left;line-height:1.45;margin:0;padding:0}.ez-toc-title-container{display:table;width:100%}.ez-toc-title,.ez-toc-title-toggle{display:inline;text-align:left;vertical-align:middle}#ez-toc-container.ez-toc-black p.ez-toc-title{color:#FFF}#ez-toc-container div.ez-toc-title-container+ul.ez-toc-list{margin-top:1em}.ez-toc-wrap-left{margin:0 auto 1em 0px!important}.ez-toc-wrap-left-text{float:left}.ez-toc-wrap-right{margin:0 0 1em auto!important}.ez-toc-wrap-right-text{float:right}#ez-toc-container a{color:#444;box-shadow:none;text-decoration:none;text-shadow:none;display:inline-flex;align-items:stretch;flex-wrap:nowrap}#ez-toc-container a:visited{color:#9f9f9f}#ez-toc-container a:hover{text-decoration:underline}#ez-toc-container.ez-toc-black a{color:#FFF}#ez-toc-container.ez-toc-black a:visited{color:#FFF}#ez-toc-container a.ez-toc-toggle{display:flex;align-items:center;color:#444}.ez-toc-widget-container ul.ez-toc-list li::before{content:' ';position:absolute;left:0;right:0;height:30px;line-height:30px;z-index:-1}.ez-toc-widget-container ul.ez-toc-list li.active{background-color:#EDEDED}.ez-toc-widget-container li.active>a{font-weight:900}.ez-toc-btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid #fff0;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ez-toc-btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ez-toc-btn:hover,.ez-toc-btn:focus{color:#333;text-decoration:none}.ez-toc-btn:active,.ez-toc-btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgb(0 0 0 / .125);box-shadow:inset 0 3px 5px rgb(0 0 0 / .125)}.ez-toc-btn-default{color:#333;background-color:#fff;border-color:#ccc}.ez-toc-btn-default:hover,.ez-toc-btn-default:focus,.ez-toc-btn-default:active,.ez-toc-btn-default.active{color:#333;background-color:#ebebeb;border-color:#adadad}.ez-toc-btn-default:active,.ez-toc-btn-default.active{background-image:none}.ez-toc-btn-sm,.ez-toc-btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.ez-toc-btn-xs{padding:1px 5px}.ez-toc-btn-default{text-shadow:0 -1px 0 rgb(0 0 0 / .2);-webkit-box-shadow:inset 0 1px 0 rgb(255 255 255 / .15),0 1px 1px rgb(0 0 0 / .075);box-shadow:inset 0 1px 0 rgb(255 255 255 / .15),0 1px 1px rgb(0 0 0 / .075)}.ez-toc-btn-default:active{-webkit-box-shadow:inset 0 3px 5px rgb(0 0 0 / .125);box-shadow:inset 0 3px 5px rgb(0 0 0 / .125)}.ez-toc-btn:active,.btn.active{background-image:none}.ez-toc-btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.ez-toc-btn-default:hover,.ez-toc-btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.ez-toc-btn-default:active,.ez-toc-btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.ez-toc-pull-right{float:right!important;margin-left:10px}#ez-toc-container label.cssicon,#ez-toc-widget-container label.cssicon{height:30px}.ez-toc-glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;-moz-osx-font-smoothing:grayscale}.ez-toc-glyphicon:empty{width:1em}.ez-toc-toggle i.ez-toc-glyphicon{font-size:16px;margin-left:2px}#ez-toc-container input{position:absolute;left:-999em}#ez-toc-container input[type="checkbox"]:checked+nav,#ez-toc-widget-container input[type="checkbox"]:checked+nav{opacity:0;max-height:0;border:none;display:none}#ez-toc-container label{position:relative;cursor:pointer;display:initial}#ez-toc-container .ez-toc-js-icon-con{position:relative;cursor:pointer;display:initial}#ez-toc-container .ez-toc-toggle label{float:right;position:relative;font-size:16px;padding:0;border:1px solid #999191;border-radius:5px;cursor:pointer;left:10px;width:35px}#ez-toc-container .ez-toc-js-icon-con{float:right;position:relative;font-size:16px;padding:0;border:1px solid #999191;border-radius:5px;cursor:pointer;left:10px;width:35px}div#ez-toc-container .ez-toc-title{display:initial}.ez-toc-wrap-center{margin:0 auto 1em auto!important}#ez-toc-container a.ez-toc-toggle{color:#444;background:inherit;border:inherit}.ez-toc-toggle #item{position:absolute;left:-999em}label.cssicon .ez-toc-glyphicon:empty{font-size:16px;margin-left:2px}label.cssiconcheckbox{display:none}.ez-toc-widget-container ul li a{padding-left:10px;display:inline-flex;align-items:stretch;flex-wrap:nowrap}.ez-toc-widget-container ul.ez-toc-list li{height:auto!important}.ez-toc-cssicon{float:right;position:relative;font-size:16px;padding:0;border:1px solid #999191;border-radius:5px;cursor:pointer;left:10px;width:35px}.ez-toc-icon-toggle-span{display:flex;align-items:center;width:35px;height:30px;justify-content:center;direction:ltr}#ez-toc-container .eztoc-toggle-hide-by-default{display:none}.eztoc_no_heading_found{background-color:#ff0;padding-left:10px}.eztoc-hide{display:none}.term-description .ez-toc-title-container p:nth-child(2){width:50px;float:right;margin:0}.ez-toc-list.ez-toc-columns-2{column-count:2;column-gap:20px;column-fill:balance}.ez-toc-list.ez-toc-columns-2>li{display:block;break-inside:avoid;margin-bottom:8px;page-break-inside:avoid}.ez-toc-list.ez-toc-columns-3{column-count:3;column-gap:20px;column-fill:balance}.ez-toc-list.ez-toc-columns-3>li{display:block;break-inside:avoid;margin-bottom:8px;page-break-inside:avoid}.ez-toc-list.ez-toc-columns-4{column-count:4;column-gap:20px;column-fill:balance}.ez-toc-list.ez-toc-columns-4>li{display:block;break-inside:avoid;margin-bottom:8px;page-break-inside:avoid}.ez-toc-list.ez-toc-columns-optimized{column-fill:balance;orphans:2;widows:2}.ez-toc-list.ez-toc-columns-optimized>li{display:block;break-inside:avoid;page-break-inside:avoid}@media (max-width:768px){.ez-toc-list.ez-toc-columns-2,.ez-toc-list.ez-toc-columns-3,.ez-toc-list.ez-toc-columns-4{column-count:1;column-gap:0}}@media (max-width:1024px) and (min-width:769px){.ez-toc-list.ez-toc-columns-4{column-count:2}.ez-toc-list.ez-toc-columns-3{column-count:2}}.fusion-footer #ez-toc-container{display:none}