
      /* --- CORE INTERFACE --- */

      @font-face {
        font-family: 'OpenDyslexic';
        src: url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/woff/OpenDyslexic-Regular.woff') format('woff'),
             url('https://cdn.jsdelivr.net/npm/open-dyslexic@1.0.3/ttf/OpenDyslexic-Regular.ttf') format('truetype');
        font-weight: 400;
        font-style: normal;
        font-display: swap;
      }
      #a11y-widget-root { 
        position: fixed !important; 
        bottom: 20px !important; 
        right: 20px !important; 
        z-index: 2147483647 !important; 
        font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
        transform-origin: bottom right !important;
        filter: none !important; 
      }
      #a11y-widget-root *:not(.a11y-btn):not(.a11y-switch-thumb) {
        filter: none !important;
      }

      #a11y-widget-root.a11y-position-left {
        right: auto !important;
        left: 20px !important;
        transform-origin: bottom left !important;
      }
      #a11y-widget-root.a11y-position-left #a11y-main-panel {
        right: auto;
        left: 20px;
      }

      #a11y-open-trigger { 
        background: linear-gradient(135deg, #ffa104 0%, #ffa200 100%); 
        color: #000; 
        margin: 0;
        border: none; 
        border-radius: 16px; 
        width: 56px; 
        height: 56px; 
        font-size: 20px; 
        font-weight: 600; 
        cursor: pointer; 
        box-shadow: 0 8px 32px rgba(99, 102, 241, 0.24); 
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
        display: flex; 
        align-items: center; 
        justify-content: center; 
        position: relative; 
        overflow: hidden;
      }
	
      .a11y-trigger-icon{
        margin-top: 8px;
      }
      
      #a11y-open-trigger:hover { 
        transform: scale(1.05) translateY(-2px); 
        box-shadow: 0 12px 40px rgba(99, 102, 241, 0.32);
      }
      
      
      #a11y-main-panel { 
		  position: fixed; 
		  bottom: 150px; 
      right: 20px; 
		  height: fit-content;
		  max-height: 85vh;
		  width: 380px; 
		  background: rgb(245 245 245 / 95%); 
		  backdrop-filter: blur(20px); 
		  border-radius: 24px;
		  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15); 
		  display: none; 
		  flex-direction: column; 
		  overflow: hidden; 
		  overflow-y: auto;
		  border: 1px solid rgba(255, 255, 255, 0.18); 
      }
      
      .a11y-header { 
        background: linear-gradient(135deg, #ffa104 0%, #ffae22 100%); 
        color: #000; 
        padding: 12px 16px; 
        font-weight: 700; 
        font-size: 18px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
      }
      .a11y-header-title {
        flex: 1;
        text-align: center;
        margin-left: 8%;
      }
      .a11y-header-logo {
        display: flex;
        align-items: center;
        flex-shrink: 0;
      }
      .a11y-header-logo img {
        height: 36px;
        width: auto;
        display: block;
      }
		
      .a11y-footer {
		  padding: 5px 10px 2px 10px;
		  width: 100%;
		  box-sizing: border-box;
		  margin-top: auto;
		  background: rgb(245 245 245 / 95%);
		  backdrop-filter: blur(20px);
		  border-top: 1px solid rgba(255, 255, 255, 0.18);
		  border-radius: 0 0 24px 24px;
		  flex: 0 0 auto;
      }

      .a11y-footer-grid {
		  display: grid;
		  grid-template-columns: 1fr 1fr 1fr;
		  gap: 10px;
		  margin: 0 15px 5px;
		  align-items: stretch;
      }

      .a11y-content { 
		  overflow-y: auto; 
		  scrollbar-color: rgba(99, 102, 241, 0.2) transparent; 
		  scrollbar-width: none;
		  background: rgb(245 245 245) !important; 
		  flex: 1 1 auto; 
		  min-height: 0;
      }

      #a11y-widget-root #a11y-main-panel,
      #a11y-widget-root .a11y-content,
      #a11y-widget-root .a11y-page {
        -ms-overflow-style: none;
        scrollbar-width: none;
      }

      #a11y-widget-root #a11y-main-panel::-webkit-scrollbar,
      #a11y-widget-root .a11y-content::-webkit-scrollbar,
      #a11y-widget-root .a11y-page::-webkit-scrollbar {
        width: 0;
        height: 0;
      }

      /* --- PROFILE MIRRORING --- */
      .a11y-profile-item {
        position: relative;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 1;
      }

      .a11y-profile-item.active {
        background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1)) !important;
        border: 2px solid rgba(99, 102, 241, 0.3) !important;
        z-index: 100;
      }

      .a11y-profile-buttons {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 12px;
        animation: fadeInProfile 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }

      .a11y-profile-buttons .a11y-btn {
        font-size: 12px;
        padding: 10px 14px;
        border-radius: 20px;
        background: rgba(255, 255, 255, 0.8);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(0, 0, 0, 0.06);
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
        min-height: 40px;
        width: 100%;
        max-width: 140px;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        font-weight: 500;
        letter-spacing: -0.025em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        flex: 1 1 auto;
      }

      .a11y-profile-buttons .a11y-btn:hover {
        border-color: rgba(99, 102, 241, 0.2);
        background: rgba(99, 102, 241, 0.04);
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(99, 102, 241, 0.08);
      }

      .a11y-profile-buttons .a11y-btn.active {
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
        color: #fff;
        transform: translateY(-1px);
        border-color: rgba(99, 102, 241, 0.3);
        box-shadow: 0 4px 12px rgba(99, 102, 241, 0.16);
        font-weight: 600;
      }

      @keyframes fadeInProfile {
        from { opacity: 0; transform: translateY(-8px); }
        to   { opacity: 1; transform: translateY(0); }
      }


      /* --- SISTEMA DI NAVIGAZIONE A PAGINE --- */
      .a11y-page-shell {
        position: relative;
        display: block;
        width: 100%;
        height: 320px;
        overflow: hidden;
        border-radius: 0 0 24px 24px;
      }

      .a11y-page-side {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgb(245 245 245 / 95%);
        backdrop-filter: blur(20px);
        pointer-events: none;
        z-index: 2;
      }

      .a11y-page-side-left {
        left: -6px;
        border-right: 0;
        margin-left: 5px;
      }

      .a11y-page-side-right {
        right: -6px;
        border-left: 0;

        margin-right: 5px;
      }

      .a11y-page-arrow {
        pointer-events: auto;
        width: 34px;
        height: 34px;
        border-radius: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        font-weight: 800;
        color: #111;
        margin: 0;
        padding: 0;
        line-height: 1;
      }

      .a11y-page-arrow svg {
        width: 22px;
        height: 22px;
        stroke: currentColor;
        flex: 0 0 auto;
      }

      .a11y-page-arrow:hover {
        color: #111;
      }

      .a11y-page-arrow:disabled {
        opacity: 0.35;
        cursor: not-allowed;
        transform: none;
        box-shadow: none;
      }

      .a11y-page-container {
        position: relative;
        width: 100%;
        height: 320px;
        overflow: hidden;
        border-radius: 0 0 24px 24px;
        padding-left: 44px;
        padding-right: 44px;
        box-sizing: border-box;
      }

      .a11y-page {
        position: absolute;
        top: 5px;
        left: 0;
        right: 0;
        width: auto;
        height: 100%;
        opacity: 0;
        transform: translateX(100%);
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        overflow-y: auto;
        padding: 0 45px;
        box-sizing: border-box;
        display: none;
        pointer-events: none;
      }

      .a11y-page.active {
        opacity: 1;
        transform: translateX(0);
        display: block;
        pointer-events: auto;
      }

      .a11y-page.a11y-animating {
        display: block;
        pointer-events: auto;
      }

      .a11y-page.slide-in-right,
      .a11y-page.slide-in-left,
      .a11y-page.slide-out-right,
      .a11y-page.slide-out-left {
        display: block;
      }

      .a11y-page.slide-in-right,
      .a11y-page.slide-in-left {
        pointer-events: auto;
      }

      .a11y-page.slide-out-right,
      .a11y-page.slide-out-left {
        pointer-events: none;
      }

      html.a11y-blind-active #a11y-widget-root,
      html.a11y-blind-active #a11y-widget-root * {
        visibility: visible !important;
        opacity: 1 !important;
        filter: none !important;
      }

      html.a11y-blind-active #a11y-widget-root .a11y-page {
        display: none !important;
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
        pointer-events: none !important;
      }

      html.a11y-blind-active #a11y-widget-root .a11y-page.active {
        display: block !important;
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
        pointer-events: auto !important;
      }

      .a11y-page.prev {
        transform: translateX(-100%);
      }

      /* HOME PAGE STYLES */
      .a11y-nav-card {
        background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
        border: 1px solid #dee2e6;
        border-radius: 12px;
        padding: 3px 10px;
        text-align: left;
        cursor: pointer;
        transition: all 0.2s ease;
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr);
        align-items: center;
        column-gap: 1rem;
        min-height: 70px;
        margin: 6px 10px;
        width: calc(100% - 20px);
        box-sizing: border-box;
      }

      .a11y-nav-card:active {
        transform: translateY(0);
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
      }

      /* --- POSITION PICKER --- */
      .a11y-position-picker {
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
      }
      .a11y-position-picker .a11y-nav-card {
        margin-bottom: 0;
      }
      .a11y-pos-arrow {
        font-size: 10px;
        display: inline-block;
        transition: transform 0.2s ease;
        margin-left: 4px;
      }
      .a11y-nav-card[aria-expanded="true"] .a11y-pos-arrow {
        transform: rotate(180deg);
      }
      .a11y-position-options {
        display: none;
        background: #fff;
        border: 1px solid #e9ecef;
        border-radius: 12px;
        margin-top: 6px;
        overflow: hidden;
        width: 93%;
        margin-left: 10px;
      }
      .a11y-position-options.open {
        display: block;
      }
      .a11y-position-option {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        padding: 6px 0px;
        border: none;
        background: transparent;
        cursor: pointer;
        width: 91%;
        font-size: 14px;
        color: #2c3e50;
        border-bottom: 1px solid #f0f0f0;
        transition: background 0.15s ease;
      }
      .a11y-position-option:last-child {
        border-bottom: none;
      }
      .a11y-position-option:hover {
        background: rgba(99, 102, 241, 0.04);
      }
      .a11y-position-radio {
        width: 22px;
        height: 22px;
        border-radius: 50%;
        border: 2px solid #ccc;
        margin-right: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        transition: border-color 0.2s ease;
      }
      .a11y-position-radio .a11y-radio-dot {
        width: 19px;
        height: 19px;
        border-radius: 50%;
        background: transparent;
        transition: background 0.2s ease;
      }
      .a11y-position-option.active .a11y-position-radio {
        border-color: #ffa104;
      }
      .a11y-position-option.active .a11y-radio-dot {
        background: #ffa104;
      }

      .a11y-nav-icon {
        font-size: 24px;
        min-width: 32px;
        text-align: center;
        grid-row: 1 / span 2;
        align-self: center;
      }

      .a11y-nav-title {
        font-weight: 800;
        font-size: 14px;
        color: #2c3e50;
        display: flex;
        align-items: center;
        margin: 0;
        min-width: 0;
        padding-top: 2px;
      }

      .a11y-nav-desc {
        font-size: 12px;
        color: black;
        margin: 0;
        min-width: 0;
        padding-bottom: 2px;
      }

      /* PAGE HEADER STYLES */
      .a11y-page-header {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        margin: 10px;
        border-bottom: 1px solid #e9ecef;
      }

      .a11y-back-btn {
        background: #6c757d;
        color: white;
        border: none;
        border-radius: 8px;
        padding: 8px 12px;
        font-size: 12px;
        cursor: pointer;
        transition: all 0.2s ease;
      }

      .a11y-back-btn:hover {
        background: #5a6268;
        transform: translateY(-1px);
      }

      .a11y-page-header h3 {
        margin: 0;
        font-size: 18px;
        font-weight: 600;
        color: #2c3e50;
        flex: 1;
      }

      /* PAGE NAVIGATION STYLES */
      .a11y-page-nav {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        margin-top: 20px;
        padding-top: 15px;
        border-top: 1px solid #e9ecef;
      }

      .a11y-nav-btn {
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
        color: white;
        border: none;
        border-radius: 8px;
        padding: 10px 16px;
        font-size: 12px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.2s ease;
        flex: 1;
      }

      .a11y-nav-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
      }

      .a11y-nav-btn:only-child {
        max-width: 200px;
        margin: 0 auto;
      }

      /* PALETTE SECTION STYLES */
      .a11y-palette-section {
        margin: 20px;
      }

      .a11y-palette-section h4 {
        margin: 0 0 12px 0;
        font-size: 14px;
        font-weight: 600;
        color: #2c3e50;
      }

      /* SWIPE GESTURES */
      .a11y-page-container {
        touch-action: pan-y;
      }

      /* ANIMATIONS */
      @keyframes slideInRight {
        from {
          transform: translateX(100%);
          opacity: 0;
        }
        to {
          transform: translateX(0);
          opacity: 1;
        }
      }

      @keyframes slideInLeft {
        from {
          transform: translateX(-100%);
          opacity: 0;
        }
        to {
          transform: translateX(0);
          opacity: 1;
        }
      }

      @keyframes slideOutRight {
        from {
          transform: translateX(0);
          opacity: 1;
        }
        to {
          transform: translateX(100%);
          opacity: 0;
        }
      }

      @keyframes slideOutLeft {
        from {
          transform: translateX(0);
          opacity: 1;
        }
        to {
          transform: translateX(-100%);
          opacity: 0;
        }
      }

      .a11y-page.slide-in-right {
        animation: slideInRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }

      .a11y-page.slide-in-left {
        animation: slideInLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }

      .a11y-page.slide-out-right {
        animation: slideOutRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }

      .a11y-page.slide-out-left {
        animation: slideOutLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      }

      /* --- ACCORDION STYLES --- */
      .a11y-accordion-section {
        margin-bottom: 0px;
        backdrop-filter: blur(10px);
        overflow: hidden;
        transition: all 0.3s ease;
      }

      .a11y-accordion-section:hover {
        border-color: rgba(99, 102, 241, 0.2);
        box-shadow: 0 4px 20px rgba(99, 102, 241, 0.08);
      }

      .a11y-accordion-toggle {
        width: 100%;
        padding: 20px 20px;
        margin: 5px 0;
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
        border: none;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        color: #ffffff !important;
        text-align: left;
        display: flex;
        justify-content: space-between;
        align-items: center;
        transition: all 0.2s ease;
        letter-spacing: -0.025em;
        height: 50px;
        border-radius: 20px;
      }

      .a11y-accordion-toggle:hover {
        background: linear-gradient(135deg, #5558dd 0%, #7c3aed 100%);
        color: #ffffff !important;
      }

      .a11y-accordion-icon {
        font-size: 18px;
        font-weight: 400;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        color: rgba(255, 255, 255, 0.8);
      }

      .a11y-accordion-toggle[aria-expanded="true"] .a11y-accordion-icon {
        transform: rotate(45deg);
        color: rgba(255, 255, 255, 0.9);
      }

      .a11y-accordion-content {
        padding: 10px 5px;
        border-top: 1px solid rgba(99, 102, 241, 0.2);
        background: rgba(249, 250, 251, 0.8);
        backdrop-filter: blur(10px);
      }

      .a11y-accordion-content .a11y-grid-3,
      .a11y-accordion-content .a11y-grid-2 {
        margin-top: 0;
      }

      /* --- GRID & BUTTONS --- */
      h3.a11y-sec-title { 
		  margin: 24px 0 16px; 
		  font-size: 13px; 
		  color: #6b7280; 
		  border-bottom: 1px solid rgba(0, 0, 0, 0.06); 
		  padding-bottom: 8px; 
		  text-transform: none; 
		  letter-spacing: -0.025em; 
		  font-weight: 600; }
		
      .a11y-grid, .a11y-grid-2 { 
        display: grid; 
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); 
        gap: 12px; 
        margin-bottom: 16px; }
      .a11y-grid-2 { gap: 3px; }

      #a11y-widget-root .a11y-page[data-page="adjustments"] .a11y-grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      }

      #a11y-widget-root .a11y-page[data-page="adjustments"] .a11y-grid-3 .a11y-adjustments-sliders {
        grid-column: 1 / -1;
        justify-self: stretch;
        align-self: stretch;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
      }

      #a11y-widget-root .a11y-adjustments-sliders {
        margin-top: 12px;
        margin-left: 0;
        margin-right: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      #a11y-widget-root .a11y-adjustments-sliders .a11y-slider-label {
        align-items: flex-start;
        gap: 8px;
      }

      #a11y-widget-root .a11y-adjustments-sliders .a11y-slider-label > span:first-child {
        flex: 1 1 auto;
        min-width: 0;
        letter-spacing: normal !important;
        word-break: normal;
        overflow-wrap: anywhere;
      }

      #a11y-widget-root .a11y-adjustments-sliders .a11y-slider-value {
        flex: 0 0 auto;
        white-space: nowrap;
        letter-spacing: normal !important;
      }

      @media (max-width: 420px) {
        #a11y-widget-root .a11y-page[data-page="adjustments"] .a11y-grid-3 {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        #a11y-widget-root .a11y-adjustments-sliders {
          grid-template-columns: 1fr;
        }
      }
		
      .a11y-grid-3 { 
		  display: grid; 
		  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); 
		  gap: 12px; 
		  margin: 10px 0; }

      #a11y-widget-root .a11y-page[data-page="tools"] .a11y-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }

      @media (max-width: 340px) {
        #a11y-widget-root .a11y-page[data-page="tools"] .a11y-grid-3 {
          grid-template-columns: 1fr !important;
        }
      }
		
      .a11y-btn { 
		  background: rgba(255, 255, 255, 0.9); 
		  border: 1px solid rgba(0, 0, 0, 0.08); 
		  padding: 16px 12px; 
      margin: 0;
		  border-radius: 12px; 
		  cursor: pointer; 
		  font-size: 12px; 
		  font-weight: 500; 
		  text-align: center; 
		  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); 
      height: 3rem;
		  display: flex;
		  align-items: center;
		  justify-content: center;
		  backdrop-filter: blur(10px);
		  position: relative;
		  overflow: hidden;}
		
      .a11y-btn:hover { 
		  border-color: rgba(99, 102, 241, 0.3); 
		  background: rgba(99, 102, 241, 0.04);
		  transform: translateY(-1px);
		  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.08); }
		
      .a11y-btn[aria-pressed="true"] { 
		  background: linear-gradient(135deg, #ffa104 0%, #ffb637 100%) !important; 
		  border: 1px solid rgba(99, 102, 241, 0.5) !important; 
		  color: #000 !important; 
		  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.24) !important;
		  transform: translateY(-1px); }

      #a11y-widget-root button:focus-visible,
      #a11y-widget-root [role="button"]:focus-visible,
      #a11y-widget-root a:focus-visible,
      #a11y-widget-root input:focus-visible,
      #a11y-widget-root select:focus-visible,
      #a11y-widget-root textarea:focus-visible {
          outline: 3px solid rgba(99, 102, 241, 0.5) !important;
          outline-offset: 3px !important;
          box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.2) !important;
      }

      body.a11y-align-left *:not(#a11y-widget-root, #a11y-widget-root *) { text-align: left !important; }
      body.a11y-align-center *:not(#a11y-widget-root, #a11y-widget-root *) { text-align: center !important; }
      body.a11y-align-right *:not(#a11y-widget-root, #a11y-widget-root *) { text-align: right !important; }

      
      .a11y-slider-field { 
        background: rgba(255, 255, 255, 0.8); 
        backdrop-filter: blur(10px); 
        border: 1px solid rgba(0, 0, 0, 0.06); 
        border-radius: 16px; 
        padding: 16px; 
        margin-bottom: 20px;
      }
		
      .a11y-slider-label { 
		  display: flex; 
		  align-items: baseline; 
		  justify-content: space-between; 
		  gap: 12px; 
		  font-size: 13px; 
		  font-weight: 500; 
		  color: #000 !important; 
		  margin-bottom: 12px; }
		
      #a11y-widget-root input[type="range"].a11y-slider {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        outline: none !important;
        background: transparent !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        height: 8px !important;
        border-radius: 999px !important;
        transition: all 0.2s ease;
      }

      #a11y-widget-root input[type="range"].a11y-slider::-webkit-slider-runnable-track {
        height: 8px;
        border-radius: 999px;
        background: linear-gradient(
          to right,
          #ffa104 var(--fill, 0%),
          #e5e7eb var(--fill, 0%)
        );
      }

      #a11y-widget-root input[type="range"].a11y-slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: linear-gradient(135deg, #ffa104 0%, #ffb732 100%);
        cursor: pointer;
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 2px 8px rgba(255, 161, 4, 0.3);
        border: 0;
        margin-top: -6px;
      }

      #a11y-widget-root input[type="range"].a11y-slider::-webkit-slider-thumb:hover {
        transform: scale(1.1);
        box-shadow: 0 4px 12px rgba(255, 161, 4, 0.4);
      }

      #a11y-widget-root input[type="range"].a11y-slider::-moz-range-track {
        height: 8px;
        border-radius: 999px;
        background: linear-gradient(
          to right,
          #ffa104 var(--fill, 0%),
          #e5e7eb var(--fill, 0%)
        );
        border: 0;
      }

      #a11y-widget-root input[type="range"].a11y-slider::-moz-range-thumb {
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: linear-gradient(135deg, #ffa104 0%, #ffb732 100%);
        cursor: pointer;
        border: 0;
        box-shadow: 0 2px 8px rgba(255, 161, 4, 0.3);
      }

      @media (hover: none) and (pointer: coarse) {
        body.a11y-parkinson-hide-cursor,
        body.a11y-parkinson-hide-cursor * {
          cursor: none !important;
        }
      }

      .a11y-scale-controls { 
		  display: flex; 
		  align-items: center; 
		  justify-content: 
		  space-between; gap: 8px; }
		
      .a11y-scale-btn { 
		  width: 44px; 
		  height: 34px; 
		  padding: 0; 
		  border-radius: 12px; }

      html.a11y-blackwhite { 
        filter: grayscale(1) contrast(1.15) !important; }
      html.a11y-blackwhite #a11y-widget-root { filter: none !important; }

      
      /* ===== PROTANOPIA MODES ===== */
      
      /* Protanopia - Red-Blind: i rossi appaiono molto più scuri/marroni */
      html.a11y-protanopia {
        filter: saturate(0.85) hue-rotate(-18deg) contrast(1.04) brightness(0.98) !important;
      }
      html.a11y-protanopia #a11y-widget-root { filter: none !important; }
      
      /* Deuteranopia - Green-Blind: i verdi confuso con rosso */
      html.a11y-deuteranopia {
        filter: saturate(0.9) hue-rotate(28deg) contrast(1.03) brightness(1.01) !important;
      }
      html.a11y-deuteranopia #a11y-widget-root { filter: none !important; }
      
      /* Tritanopia - Blue/Yellow: evita blu/giallo */
      html.a11y-tritanopia {
        filter: saturate(0.88) hue-rotate(78deg) contrast(1.02) brightness(1.01) !important;
      }
      html.a11y-tritanopia #a11y-widget-root { filter: none !important; }
      
      /* BLOCCA ANIMAZIONI - e-lazyloaded e elementi animati */
      body.a11y-stop-animations .e-lazyloaded,
      body.a11y-stop-animations [class*="animated"],
      body.a11y-stop-animations .elementor-element,
      body.a11y-stop-animations .elementor-widget,
      body.a11y-stop-animations .fadeIn,
      body.a11y-stop-animations .fadeInUp,
      body.a11y-stop-animations .fadeInDown,
      body.a11y-stop-animations .fadeInLeft,
      body.a11y-stop-animations .fadeInRight,
      body.a11y-stop-animations .zoomIn,
      body.a11y-stop-animations .slideInUp,
      body.a11y-stop-animations .slideInDown,
      body.a11y-stop-animations .bounce,
      body.a11y-stop-animations .pulse,
      body.a11y-stop-animations .rubberBand,
      body.a11y-stop-animations .shake,
      body.a11y-stop-animations .swing,
      body.a11y-stop-animations .tada,
      body.a11y-stop-animations .wobble,
      body.a11y-stop-animations .jello,
      body.a11y-stop-animations .flip,
      body.a11y-stop-animations .flipInX,
      body.a11y-stop-animations .flipInY,
      body.a11y-stop-animations .lightSpeedIn,
      body.a11y-stop-animations .rotateIn,
      body.a11y-stop-animations .rollIn,
      body.a11y-stop-animations .zoomInUp,
      body.a11y-stop-animations .zoomInDown {
        animation: none !important;
        animation-duration: 0s !important;
        animation-delay: 0s !important;
        transition: none !important;
        transition-duration: 0s !important;
        transform: none !important;
        opacity: 1 !important;
      }
      
      /* Icone per errori e successi */
      html.a11y-protanopia .error::before,
      html.a11y-deuteranopia .error::before,
      html.a11y-tritanopia .error::before {
        content: "⚠️" !important;
        margin-right: 8px !important;
      }
      
      html.a11y-protanopia .success::before,
      html.a11y-deuteranopia .success::before,
      html.a11y-tritanopia .success::before {
        content: "✅" !important;
        margin-right: 8px !important;
      }

      html.a11y-night-mode { filter: invert(1) hue-rotate(180deg) !important; }
      html.a11y-night-mode #a11y-widget-root { filter: none !important; }
      
      /* Immagini escluse dalla night mode - riapplico stesso filtro per annullare inversione */
      html.a11y-night-mode img:not(#a11y-widget-root *),
      html.a11y-night-mode picture:not(#a11y-widget-root *),
      html.a11y-night-mode video:not(#a11y-widget-root *),
      html.a11y-night-mode iframe:not(#a11y-widget-root *),
      html.a11y-night-mode .e-lazyloaded:not(#a11y-widget-root *),
      html.a11y-night-mode [class*="animated"]:not(#a11y-widget-root *),
      html.a11y-night-mode .elementor-widget:not(#a11y-widget-root *),
      html.a11y-night-mode .elementor-element:not(#a11y-widget-root *) {
        filter: invert(1) hue-rotate(180deg) !important;
      }

      body.a11y-text-color *:not(#a11y-widget-root, #a11y-widget-root *):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(h1 *):not(h2 *):not(h3 *):not(h4 *):not(h5 *):not(h6 *) { color: var(--a11y-text-color) !important; }
      body.a11y-title-color h1:not(#a11y-widget-root *),
      body.a11y-title-color h2:not(#a11y-widget-root *),
      body.a11y-title-color h3:not(#a11y-widget-root *),
      body.a11y-title-color h4:not(#a11y-widget-root *),
      body.a11y-title-color h5:not(#a11y-widget-root *),
      body.a11y-title-color h6:not(#a11y-widget-root *),
      body.a11y-title-color a:not(#a11y-widget-root *) { color: var(--a11y-title-color) !important; }

      body.a11y-bg-color { background: var(--a11y-bg-color) !important; }
      body.a11y-bg-color header:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color main:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color footer:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color section:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color article:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color nav:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color aside:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-bg-color div:not(#a11y-widget-root):not(#a11y-widget-root *):not(#adhd-highlight-bar):not(#reading-mask-bar):not(#reading-bar):not(#a11y-zoom-preview):not(#a11y-slow-cursor) { background-color: var(--a11y-bg-color) !important; }

      .a11y-palette { margin-top: 16px; margin-bottom: 16px; }
      .a11y-palette-title { font-size: 13px; font-weight: 600; color: #374151 !important; margin-bottom: 12px; }
      .a11y-swatch-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }

      #a11y-widget-root .a11y-page[data-page="color"] .a11y-palette {
        display: grid;
        grid-template-columns: repeat(4, 60px);
        gap: 7px;
        width: 100%;
        justify-content: center;
        margin-left: 7px;
      }

      #a11y-widget-root .a11y-page[data-page="color"] .a11y-palette-section {
        margin: 13px 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        background-color: white;
        border-radius: 16px;
        padding: 8px;
      }

      .a11y-swatch {
          width: 4rem;
          height: 2rem;
          border-radius: 12px;
          border: 1px solid rgb(0 0 0 / 49%);
          cursor: pointer;
          background: #fff;
          padding: 0;
          transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
          backdrop-filter: blur(10px);
      }

      #a11y-widget-root .a11y-page[data-page="color"] .a11y-swatch {
        width: 55px;
        height: 30px;
      }
      .a11y-swatch:hover {
          transform: scale(1.05);
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
      }
      .a11y-swatch[aria-pressed="true"] { outline: 3px solid rgba(99, 102, 241, 0.5); border-color: rgba(99, 102, 241, 0.3); transform: scale(1.05); }
      .a11y-scale-mid { flex: 1 1 auto; text-align: center; font-weight: 900; color: #111 !important; }

      body.a11y-big-targets #a11y-widget-root input.a11y-slider {
          min-height: initial !important;
          min-width: initial !important;
          padding: 0 !important;
          font-size: initial !important;
          line-height: initial !important;
      }

      .a11y-profile-list { 
        display: flex; 
        flex-direction: column;
        position: relative;
        z-index: 10; 
        margin: 10px;
       }

      .a11y-profile-item { 
        width: 100%; 
        background: rgba(255, 255, 255, 0.8); 
        backdrop-filter: blur(10px); 
        border: 1px solid rgba(0, 0, 0, 0.06); 
        padding: 16px 20px; 
        border-radius: 16px; 
        cursor: pointer; 
        font-size: 14px; 
        font-weight: 500; 
        color: #374151 !important; 
        text-align: left; 
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); 
        display: flex; 
        align-items: center; 
        gap: 16px; 
        margin: 5px 0px;
      }
      .a11y-profile-item:hover { 
        border-color: rgba(99, 102, 241, 0.2); 
        background: rgba(99, 102, 241, 0.04); 
        transform: translateY(-1px); 
        box-shadow: 0 4px 12px rgba(99, 102, 241, 0.08); }
      .a11y-profile-item[aria-pressed="true"] { 
        border: 2px solid rgba(99, 102, 241, 0.3) !important; 
        background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(139, 92, 246, 0.1)) !important; }
      .a11y-switch { 
        width: 48px; 
        height: 28px; 
        border-radius: 999px; 
        background: #e5e7eb; 
        position: relative; 
        flex: 0 0 auto; 
        transition: all 0.2s ease; }
      .a11y-switch-thumb { 
        width: 24px; 
        height: 24px; 
        border-radius: 999px; 
        background: #fff; 
        position: absolute; 
        top: 2px; 
        left: 2px; 
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); 
        box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
      .a11y-profile-item[aria-pressed="true"] .a11y-switch { 
        background: linear-gradient(135deg, #ffa104 0%, #ffa200 100%); }
      .a11y-profile-item[aria-pressed="true"] .a11y-switch-thumb { 
        transform: translateX(20px); }
      .a11y-profile-label { 
        display: block; font-size: 14px; font-weight: 500; color: #374151 !important; }

      @media (max-width: 600px) {
        #a11y-widget-root { right: 12px !important; left: auto !important; bottom: 12px !important; }
        #a11y-widget-root.a11y-position-left { left: 12px !important; right: auto !important; }
        #a11y-open-trigger { 
          width: 60px; 
          height: 60px; 
          font-size: 20px;
        }
        
        #a11y-open-trigger:hover { 
          transform: scale(1.05) translateY(-2px);
        }

        #a11y-open-trigger .a11y-trigger-icon {
          display: flex;
          align-items: center;
          justify-content: center;
          line-height: 0;
          margin-top: 8px;
        }

        #a11y-open-trigger .a11y-trigger-icon svg {
          width: 28px !important;
          height: 28px !important;
          flex: 0 0 auto;
        }

        #a11y-widget-root #a11y-main-panel {
          left: 12px !important;
          right: 12px !important;
          width: auto !important;
          max-width: calc(100vw - 24px) !important;
          bottom: 84px !important;
        }

        .a11y-grid,
        .a11y-grid-2 { grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); }

        .a11y-grid-3 { grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); }

        
        .a11y-profile-item { min-height: 52px; padding: 14px 16px; }
        .a11y-switch { width: 68px; height: 26px; }
        .a11y-switch-thumb { width: 22px; height: 22px; }
        .a11y-profile-item[aria-pressed="true"] .a11y-switch-thumb { transform: translateX(42px); }

        .a11y-swatch-grid { grid-template-columns: repeat(4, 1fr); }
        .a11y-swatch { height: 32px; }

        #a11y-widget-root .a11y-page[data-page="color"] .a11y-palette {
          grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
          width: 100% !important;
          max-width: 100% !important;
          box-sizing: border-box;
        }

        #a11y-widget-root .a11y-page[data-page="color"] .a11y-swatch {
          width: 100% !important;
          max-width: 100% !important;
        }
      }

      /* --- ADHD FOCUS & DISLESSIA --- */
      #adhd-highlight-bar { 
        position: fixed !important; 
        left: 0 !important; 
        width: 100vw !important; 
        height: 160px !important; 
        pointer-events: none !important; 
        z-index: 2147483646 !important; 
        display: none; 
        transform: translateY(-50%); 
        background: transparent !important; 
        box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.75) !important; 
        border-top: 2px solid rgba(255,255,255,0.2); 
        border-bottom: 2px solid rgba(255,255,255,0.2); 
      }
      html.dislessia-active, html.dislessia-active * { 
        font-family: 'OpenDyslexic', sans-serif !important; 
        letter-spacing: 0.05em !important; 
        line-height: 1.8 !important; 
      }

      html.a11y-blind-active .the7-e-sticky,
      html.a11y-blind-active .the7-e-sticky-row-yes,
      html.a11y-blind-active .the7-e-sticky-active,
      html.a11y-blind-active .the7-e-sticky-effects,
      html.a11y-blind-active .the7-e-sticky-effects *,
      html.a11y-blind-active .elementor-element[data-settings*="the7_sticky_row"],
      html.a11y-blind-active .elementor-element[data-settings*="the7_sticky_row"] * {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
      }


     /* ===== LAYOUT BREAKER ===== */

      .a11y-force-mobile .row:not(#a11y-widget-root *),
      .a11y-force-mobile [class*="row"]:not(#a11y-widget-root *),
      .a11y-force-mobile [class*="flex"]:not(#a11y-widget-root *),
      .a11y-force-mobile [class*="grid"]:not(#a11y-widget-root *),
      .a11y-force-mobile .container:not(#a11y-widget-root *),
      .a11y-force-mobile .wrapper:not(#a11y-widget-root *),
      .a11y-force-mobile .inner:not(#a11y-widget-root *),
      .a11y-force-mobile .content-wrapper:not(#a11y-widget-root *) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
      }

      /* ===== FIX WIDGET GRIDS IN MOBILE MODE ===== */
      #a11y-widget-root .a11y-grid,
      #a11y-widget-root .a11y-grid-2,
      #a11y-widget-root .a11y-grid-3,
      #a11y-widget-root .a11y-swatch-grid {
        display: grid !important;
        width: auto !important;
        max-width: none !important;
      }
      
      #a11y-widget-root .a11y-grid-3 {
        grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)) !important;
      }
      
      #a11y-widget-root .a11y-swatch-grid {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 10px !important;
      }
		
      /* ===== COLUMN STACK ===== */

      .a11y-force-mobile [class*="col"]:not(#a11y-widget-root *),
      .a11y-force-mobile .column:not(#a11y-widget-root *),
      .a11y-force-mobile .wp-block-column:not(#a11y-widget-root *),
      .a11y-force-mobile [style*="width"]:not(#a11y-widget-root *) {
        float: none !important;
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
      }
		
		
      /* ===== UNIVERSAL FOOTER FIX ===== */

      .a11y-force-mobile footer:not(#a11y-widget-root *),
      .a11y-force-mobile .footer:not(#a11y-widget-root *),
      .a11y-force-mobile #footer:not(#a11y-widget-root *),
      .a11y-force-mobile .site-footer:not(#a11y-widget-root *),
      .a11y-force-mobile [class*="footer"]:not(#a11y-widget-root *) {
        width: 100% !important;
        max-width: 100% !important;
      }

      .a11y-force-mobile footer .container:not(#a11y-widget-root *),
      .a11y-force-mobile footer .row:not(#a11y-widget-root *),
      .a11y-force-mobile footer [class*="flex"]:not(#a11y-widget-root *),
      .a11y-force-mobile footer [class*="grid"]:not(#a11y-widget-root *),
      .a11y-force-mobile footer [class*="inner"]:not(#a11y-widget-root *) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
      }
      .a11y-force-mobile footer [class*="col"]:not(#a11y-widget-root *),
      .a11y-force-mobile footer .column:not(#a11y-widget-root *),
      .a11y-force-mobile footer .widget:not(#a11y-widget-root *),
      .a11y-force-mobile footer .elementor-column:not(#a11y-widget-root *),
      .a11y-force-mobile footer .elementor-widget-wrap:not(#a11y-widget-root *) {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        flex-basis: auto !important;
        display: block !important;
      }
      .a11y-force-mobile footer [style*="grid-template-columns"]:not(#a11y-widget-root *),
      .a11y-force-mobile footer .elementor-grid:not(#a11y-widget-root *),
      .a11y-force-mobile footer .grid:not(#a11y-widget-root *) {
        grid-template-columns: 1fr !important;
      }
      .a11y-force-mobile footer *:not(#a11y-widget-root *) {
        min-width: 0 !important;
        overflow-wrap: break-word !important;
      }
      .a11y-force-mobile footer [style*="flex"]:not(#a11y-widget-root *) {
        display: block !important;
      }

		  /* ===== READING FLOW SAFETY ===== */

		  .a11y-force-mobile main:not(#a11y-widget-root *),
		  .a11y-force-mobile #content:not(#a11y-widget-root *),
		  .a11y-force-mobile .site-content:not(#a11y-widget-root *) {
			display: block !important;
		  }

		  .a11y-force-mobile aside:not(#a11y-widget-root *) {
			order: 2 !important;
		  }

		  .a11y-force-mobile main:not(#a11y-widget-root *) {
			bottom: auto !important;
			top: auto !important;
			margin: 0 !important;
			padding: 0 !important;
			float: none !important;
			flex: none !important;
			display: block !important;
		  }
		
	    /* Centra elementi fissi */
      .a11y-force-mobile [style*="position: fixed"]:not(#a11y-widget-root *),
      .a11y-force-mobile .elementor-element[data-settings*="the7_sticky_row"]:not(#a11y-widget-root *),
      .a11y-force-mobile [data-element_type="container"][style*="position: fixed"]:not(#a11y-widget-root *) {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
        max-width: 100% !important;
        width: auto !important;
      }

      .a11y-force-mobile .g-recaptcha-response {
        display: none !important;
      }

      .a11y-force-mobile .grecaptcha-badge[data-style="bottomright"] {
        position: fixed !important;
        bottom: 14px !important;
        right: 14px !important;
        width: 256px !important;
        height: 60px !important;
		    left: auto !important;
        transform: none !important;
      }
		
		
      /* ===== MENU SAFETY  ===== */

      .a11y-force-mobile nav ul:not(#a11y-widget-root *) {
        flex-direction: column !important;
      } 

      /* nasconde header desktop quando blind attiva */
      .a11y-force-mobile .elementor-hidden-mobile,
      .a11y-force-mobile .elementor-hidden-tablet,
      .a11y-force-mobile .elementor-hidden-tablet_extra {
        display: none !important;
      } 


      /* --- IPOVISIONE --- */
		
		  .a11y-ipovisione-mode [class*="elementor-element"]{
        background-color: #000000 !important;
        color: #FCFF57 !important;
      }
      
      body.a11y-ipovisione-mode .elementor-field:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode input[type="email"]:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode input[type="text"]:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode input[type="password"]:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode textarea:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode select:not(#a11y-widget-root *) {
        background-color: #000000 !important;
        color: #FCFF57 !important;
        border-color: #FCFF57 !important;
      }
		
		
      #a11y-accessible-nav-container { 
        display: none;
        background: #fff !important; 
        color: #000 !important; 
        padding: 30px !important; 
        border: 4px solid #000 !important; 
        margin-bottom: 50px !important; }

      .a11y-nav-link { 
        display: block !important; 
        padding: 15px !important; 
        border-bottom: 2px solid #000 !important; 
        font-size: 20px !important; 
        color: #000 !important; 
        font-weight: 900 !important; 
        text-decoration: none !important; }
      
      body.a11y-ipovisione-mode {
          background: #000000 !important;
          color: #FCFF57 !important;
          font-family: Arial, Helvetica, Tahoma, sans-serif !important;
          font-size: 28px !important;
          line-height: 2.0 !important;
          letter-spacing: 0.25em !important;
      }

      body.a11y-ipovisione-mode *:not(#a11y-widget-root, #a11y-widget-root *):not(#reading-mask-bar):not(#adhd-highlight-bar):not(#reading-bar) {
          color: #FCFF57 !important;
          border-color: #FCFF57 !important;
          text-shadow: none !important;
          background-color: #000000 !important;
          letter-spacing: 0.05em !important;
          line-height: 1.8 !important;
      }

      body.a11y-ipovisione-mode.a11y-bg-color {
          background: var(--a11y-bg-color) !important;
      }
      
      body.a11y-ipovisione-mode.a11y-bg-color header:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color main:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color footer:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color section:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color article:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color nav:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color aside:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-bg-color div:not(#a11y-widget-root):not(#a11y-widget-root *):not(#adhd-highlight-bar):not(#reading-mask-bar):not(#reading-bar):not(#a11y-zoom-preview):not(#a11y-slow-cursor) {
          background-color: var(--a11y-bg-color) !important;
      }
      
      body.a11y-ipovisione-mode.a11y-text-color *:not(#a11y-widget-root, #a11y-widget-root *):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(h1 *):not(h2 *):not(h3 *):not(h4 *):not(h5 *):not(h6 *) {
          color: var(--a11y-text-color) !important;
      }
      
      body.a11y-ipovisione-mode.a11y-title-color h1:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color h2:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color h3:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color h4:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color h5:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color h6:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode.a11y-title-color a:not(#a11y-widget-root *) {
          color: var(--a11y-title-color) !important;
      }

      body.a11y-ipovisione-mode a:not(#a11y-widget-root a):not(#a11y-widget-root a *) {
          color: #FCFF57 !important;
          font-size: 28px !important;
          text-decoration: underline !important;
          text-decoration-thickness: 2px !important;
          text-underline-offset: 3px !important;
		      background-color: #000000 ; 
         }

      body.a11y-ipovisione-mode :focus-visible:not(#a11y-widget-root):not(#a11y-widget-root *) {
          outline: 3px solid #2a9fd6 !important;
          outline-offset: 3px !important;
          box-shadow: 0 0 0 4px rgba(42, 159, 214, 0.18) !important;
      }

      body.a11y-ipovisione-mode img.a11y-missing-alt {
          outline: 3px solid #d9534f !important;
          outline-offset: 3px !important;
      }
      body.a11y-ipovisione-mode p:not(#a11y-widget-root):not(#a11y-widget-root *) {
        font-size: 1.50em !important;
      }

      body.a11y-ipovisione-mode h1:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode h2:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode h3:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode h4:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode h5:not(#a11y-widget-root *),
      body.a11y-ipovisione-mode h6:not(#a11y-widget-root *) {
          font-size: 2em !important;
          line-height: 1.05 !important;
      }

      body.a11y-hide-images img:not(#a11y-widget-root *, #a11y-zoom-preview *),
      body.a11y-hide-images picture:not(#a11y-widget-root *, #a11y-zoom-preview *),
      body.a11y-hide-images figure:not(#a11y-widget-root *, #a11y-zoom-preview *),
      body.a11y-hide-images video:not(#a11y-widget-root *, #a11y-zoom-preview *),
      body.a11y-hide-images iframe:not(#a11y-widget-root *, #a11y-zoom-preview *),
      body.a11y-hide-images svg:not(#a11y-widget-root *, #a11y-zoom-preview *) {
          display: none !important;
      }

      body.a11y-hide-images .rev_slider_wrapper:not(#a11y-widget-root *),
      body.a11y-hide-images .rev_slider:not(#a11y-widget-root *),
      body.a11y-hide-images rs-module-wrap:not(#a11y-widget-root *),
      body.a11y-hide-images rs-module:not(#a11y-widget-root *),
      body.a11y-hide-images .swiper:not(#a11y-widget-root *),
      body.a11y-hide-images .swiper-container:not(#a11y-widget-root *),
      body.a11y-hide-images .slick-slider:not(#a11y-widget-root *),
      body.a11y-hide-images .owl-carousel:not(#a11y-widget-root *),
      body.a11y-hide-images .splide:not(#a11y-widget-root *),
      body.a11y-hide-images .carousel:not(#a11y-widget-root *),
      body.a11y-hide-images [class*="slider"]:not(#a11y-widget-root):not(#a11y-widget-root *),
      body.a11y-hide-images [class*="carousel"]:not(#a11y-widget-root):not(#a11y-widget-root *) {
          display: none !important;
      }

     
      body.a11y-ipovisione-mode #a11y-widget-root {
          position: fixed !important;
          bottom: 20px !important;
          right: 20px !important;
          display: block !important;
          font-size: 16px !important;
          line-height: normal !important;
          letter-spacing: normal !important;
          font-family: inherit !important;
          color: inherit !important;
          background-color: transparent !important;
      }

      body.a11y-ipovisione-mode #a11y-widget-root *:not(svg):not(svg *) {
          font-size: unset !important;
          line-height: unset !important;
          letter-spacing: unset !important;
          font-family: unset !important;
          font-weight: unset !important;
          text-decoration: unset !important;
          text-shadow: unset !important;
      }

      /* --- FUNZIONI VISIVE --- */
      html.a11y-sat-1 { filter: saturate(1.15); }
      html.a11y-sat-2 { filter: saturate(1.45); }
      html.a11y-sat-3 { filter: saturate(1.70); }
      html.a11y-sat-custom { filter: saturate(var(--a11y-sat-val, 1)); }
      html.a11y-contrast-custom { filter: contrast(var(--a11y-contrast-val, 1)); }
      html.a11y-grayscale { filter: grayscale(65%); }
      
      /* Esclusione widget dai filtri */
      html.a11y-sat-1 #a11y-widget-root,
      html.a11y-sat-2 #a11y-widget-root,
      html.a11y-sat-3 #a11y-widget-root,
      html.a11y-sat-custom #a11y-widget-root,
      html.a11y-contrast-custom #a11y-widget-root,
      html.a11y-grayscale #a11y-widget-root { filter: none !important; }

      /* Zoom compatibile */
      /* Zoom gestito via JS con esclusione widget */
      
      .a11y-link-highlight a { outline: 2px solid #ff4500 !important; outline-offset: 2px !important; }
      .a11y-heading-highlight h1,
      .a11y-heading-highlight h2,
      .a11y-heading-highlight h3,
      .a11y-heading-highlight h4,
      .a11y-heading-highlight h5,
      .a11y-heading-highlight h6 {
          outline: 3px solid #7c3aed !important;
          outline-offset: 4px !important;
          border-radius: 10px !important;
          background: rgba(124, 58, 237, 0.08) !important;
      }
      .a11y-btn-highlight button, .a11y-btn-highlight .btn, .a11y-btn-highlight [role="button"] { 
          outline: 2px solid #2a9fd6 !important; 
          outline-offset: 2px !important; 
          border-radius: 8px !important; 
      }

      /* --- KEYBOARD NAV & LEGENDA --- */
      .keyboard-nav-highlight { 
        outline: 5px solid #2a9fd6 !important; 
        outline-offset: 3px !important; 
        box-shadow: 0 0 20px rgba(42, 159, 214, 0.8) !important; 
        position: relative; 
        z-index: 2147483644; }
      .a11y-legenda { 
        background: #fffcf0ff; 
        padding: 15px; 
        border-radius: 15px; 
        margin: 10px; 
        border: 1px solid #d0e3f7; }
      .a11y-legenda p { 
        margin: 6px 0; 
        font-size: 11px; 
        font-weight: bold; 
        color: #281b1bff; 
        display: flex; 
        align-items: center; }
      .key-cap { 
        background: #fff; 
        border: 1px solid #a0aec0; 
        padding: 2px 8px; 
        border-radius: 6px; 
        border-bottom-width: 3px; 
        margin-right: 10px; 
        font-family: "Courier New", monospace; 
        font-size: 12px; 
        color: #000; }

      .a11y-legenda-toggle {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        background: rgba(255, 255, 255, 0.9);
        border: 1px solid #d0e3f7;
        border-radius: 12px;
        padding: 10px 12px;
        font-weight: 800;
        cursor: pointer;
      }

      .a11y-legenda-toggle:focus {
        outline: 3px solid rgba(99, 102, 241, 0.55);
        outline-offset: 3px;
      }

      .a11y-legenda-chevron {
        display: inline-block;
        transform: rotate(0deg);
        transition: transform 0.2s ease;
      }

      .a11y-legenda-toggle[aria-expanded="true"] .a11y-legenda-chevron {
        transform: rotate(180deg);
      }

      .a11y-rev-snapshot, .a11y-rev-snapshot * { animation: none !important; transition: none !important; }
      .a11y-rev-frozen { position: relative !important; }
      .a11y-rev-frozen * { visibility: hidden !important; }
      .a11y-rev-frozen .a11y-rev-snapshot,
      .a11y-rev-frozen .a11y-rev-snapshot * { visibility: visible !important; }
      .a11y-rev-frozen { line-height: 0 !important; font-size: 0 !important; }
      .a11y-rev-snapshot { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; z-index: 10 !important; }

      body.a11y-revstop-active .rev_slider_wrapper .tp-caption,
      body.a11y-revstop-active .rev_slider_wrapper .tp-layer,
      body.a11y-revstop-active .rev_slider_wrapper .tp-parallax-wrap,
      body.a11y-revstop-active .rev_slider_wrapper .tp-mask-wrap,
      body.a11y-revstop-active .rev_slider_wrapper .tp-loop-wrap,
      body.a11y-revstop-active .rev_slider_wrapper .tp-bgimg,
      body.a11y-revstop-active .rev_slider_wrapper .tp-bannertimer,
      body.a11y-revstop-active rs-module-wrap .tp-caption,
      body.a11y-revstop-active rs-module-wrap .tp-layer,
      body.a11y-revstop-active rs-module-wrap .tp-parallax-wrap,
      body.a11y-revstop-active rs-module-wrap .tp-mask-wrap,
      body.a11y-revstop-active rs-module-wrap .tp-loop-wrap,
      body.a11y-revstop-active rs-module-wrap .tp-bgimg,
      body.a11y-revstop-active rs-module-wrap .tp-bannertimer {
        visibility: hidden !important;
        opacity: 0 !important;
        animation: none !important;
        transition: none !important;
      }

      body.a11y-revstop-active .rev_slider_wrapper .a11y-rev-snapshot,
      body.a11y-revstop-active .rev_slider_wrapper .a11y-rev-snapshot *,
      body.a11y-revstop-active rs-module-wrap .a11y-rev-snapshot,
      body.a11y-revstop-active rs-module-wrap .a11y-rev-snapshot * {
        visibility: visible !important;
        opacity: 1 !important;
      }

      body.a11y-revstop-active .tp-fullwidth-forcer {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
      }

      /* --- UTILITIES --- */
      body.big-cursor-black { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="black" stroke="white" stroke-width="2"/></svg>') 6 2, auto !important; }
      body.big-cursor-white { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="white" stroke="black" stroke-width="2"/></svg>') 6 2, auto !important; }

      body.a11y-big-targets button:not(#a11y-widget-root button),
      body.a11y-big-targets a:not(#a11y-widget-root a),
      body.a11y-big-targets input:not(#a11y-widget-root input),
      body.a11y-big-targets select:not(#a11y-widget-root select),
      body.a11y-big-targets textarea:not(#a11y-widget-root textarea),
      body.a11y-big-targets [role="button"]:not(#a11y-widget-root [role="button"]) {
          min-height: 44px !important;
          min-width: 44px !important;
          padding: 12px 14px !important;
          font-size: 1.05em !important;
          line-height: 1.3 !important;
      }

      body.a11y-big-targets a:not(#a11y-widget-root a) { display: inline-block !important; }

      /* Nascondi header sticky di Elementor nel profilo ipovedenti */
      body.a11y-ipovisione-mode .elementor-element.elementor-element-25340b6 {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
      }

      /* Esclude scroll-top dagli effetti big-targets */
      body.a11y-big-targets .scroll-top,
      body.a11y-big-targets .scroll-top-elementor-icon,
      body.a11y-big-targets .scroll-top *,
      body.a11y-big-targets .scroll-top-elementor-icon * {
        min-height: auto !important;
        min-width: auto !important;
        padding: inherit !important;
      }

      body.a11y-slow-cursor,
      body.a11y-slow-cursor * { cursor: none !important; }

      body.a11y-slow-cursor input,
      body.a11y-slow-cursor textarea,
      body.a11y-slow-cursor [contenteditable="true"] { cursor: text !important; }
		
      body.a11y-slow-cursor iframe,
      body.a11y-slow-cursor video,
      body.a11y-slow-cursor canvas {
      cursor: none !important;
      }

      #a11y-slow-cursor {
		  position: fixed;
		  top: 0;
		  left: 0;
		  width: 40px;
		  height: 40px;
		  pointer-events: none;
		  z-index: 2147483647;
		  will-change: transform;
      }
      
      html.a11y-slow-cursor,
      html.a11y-slow-cursor body,
      html.a11y-slow-cursor * {
        cursor: none !important;
      }

      body.cursor-theme-black { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="black" stroke="white" stroke-width="2"/></svg>') 6 2, auto !important; }
      body.cursor-theme-white { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="white" stroke="black" stroke-width="2"/></svg>') 6 2, auto !important; }

      body.a11y-slow-cursor:not(.cursor-theme-black):not(.cursor-theme-white) #a11y-slow-cursor {
          background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 2 L4 20 L8 16 L11 22 L14 21 L11 15 L17 15 Z" fill="white" stroke="black" stroke-width="1"/></svg>');
          background-size: 24px 24px;
          background-repeat: no-repeat;
          background-position: top left;
          width: 24px;
          height: 24px;
      }

      body.a11y-slow-cursor.cursor-theme-black #a11y-slow-cursor {
          background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="black" stroke="white" stroke-width="2"/></svg>');
          background-size: 40px 40px;
          background-repeat: no-repeat;
          background-position: center;
          width: 40px;
          height: 40px;
      }

      body.a11y-slow-cursor.cursor-theme-white #a11y-slow-cursor {
          background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><path d="M6 2 L6 30 L14 24 L18 38 L24 36 L20 22 L30 22 Z" fill="white" stroke="black" stroke-width="2"/></svg>');
          background-size: 40px 40px;
          background-repeat: no-repeat;
          background-position: center;
          width: 40px;
          height: 40px;
      }

      /* --- ZOOM CURSOR --- */
      body.a11y-zoom-cursor,
      body.a11y-zoom-cursor * { cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><circle cx="12" cy="12" r="10" fill="none" stroke="black" stroke-width="2"/><line x1="19" y1="19" x2="30" y2="30" stroke="black" stroke-width="3"/><line x1="12" y1="8" x2="12" y2="16" stroke="black" stroke-width="2"/><line x1="8" y1="12" x2="16" y2="12" stroke="black" stroke-width="2"/></svg>') 12 12, auto !important; }

      #a11y-zoom-preview {
          position: fixed !important;
          left: 0;
          top: 0;
          display: none;
          max-width: 520px;
          padding: 14px 16px;
          border-radius: 12px;
          background: #0b5ed7;
          color: #fff;
          box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
          font-size: 20px;
          line-height: 1.45;
          font-weight: 800;
          white-space: pre-wrap;
          overflow-wrap: anywhere;
          pointer-events: none;
          z-index: 2147483647;
      }

      /* --- BARRA DI LETTURA --- */
      #reading-bar {
          position: fixed !important;
          left: 0;
          top: 0;
          width: 500px !important;
          height: 4px !important;
          background: #091017 !important;
          pointer-events: none !important;
          z-index: 2147483646 !important;
          display: none;
          transform: translate(-50%, -50%) !important;
          border-radius: 999px;
      }

      /* --- MASCHERA DI LETTURA --- */
      #reading-mask-bar { position: fixed !important; 
		  left: 0 !important; 
		  width: 100vw !important; 
		  height: 160px !important; pointer-events: none !important; z-index: 2147483646 !important; display: none; transform: translateY(-50%); 
		  background: transparent !important; box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.75) !important; border-top: 2px solid rgba(255,255,255,0.2); 
		  border-bottom: 2px solid rgba(255,255,255,0.2); }

