:root {
  --bee-ally-color: #000;
}
.bee-accessibility-widget {
    display: block;
    position: fixed;
    bottom: 25px;
    left: 25px;
    pointer-events: none;
    z-index: 900;
}

.bee-accessibility-widget .bee-ally-open {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 48px;
    height: 48px;
    color: #FFF;
    background-color: var(--bee-ally-color);
    border-radius: 50%;
    border: none;
    outline: none;
    z-index: 10;
    border: 0;
    padding: 8px;
    pointer-events: initial;
}
.bee-accessibility-widget .bee-ally-open:hover {
    transform: scale(1.1);
    transition: transform .3s ease-in-out;
}
.bee-accessibility-widget .bee-ally-open svg {
    width: 100%;
    height: 100%;;
}
.bee-accessibility-widget .bee-ally-open .bee-ally-indicator { 
    background-color: var(--bee-ally-color);
    border-radius: 50%;
    height: 22px;
    min-width: 22px;
    line-height: 18px;
    font-size: 9px;
    font-weight: 600;
    text-align: center;
    color: #FFF;
    position: absolute;
    top: -4px;
    right: -4px;
    border: 2px solid #FFF;
}

.bee-accessibility-widget .bee-ally-panel {
    display: none;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 500px;
    background-color: #EEE;
    box-shadow: 1px 2px 5px rgba(0,0,0,0.2);
    border-radius: 12px;
    padding: 0;
    z-index: 20;
    pointer-events: initial;
    overflow: hidden;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner {
    max-height: 70vh;
    overflow: auto;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head {
    position: relative;
    padding: 40px 25px 120px;
    z-index: 10;
    background-color: var(--bee-ally-color);
    text-align: center;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close {
    display: block;
    position: absolute;
    top: 20px;
    right: 20px;
    width: 18px;    
    height: 18px;
    background: none;
    border: none;
    outline: none !important;
    cursor: pointer;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:before,
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #DDD;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:hover:before,
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:hover:after {
    background-color: #FFF;
    transition: background-color .3s ease-in-out;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:before {
    transform: rotate(-45deg);
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-close:after {
    transform: rotate(45deg);
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-title {
    font-size: 22px;
    color: #FFF;
    margin: 0;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-reset {
  display: inline-block;
  color: #333;
  background-color: #F9F9F9;
  border-radius: 16px;
  padding: 5px 15px;
  font-size: 14px;
  line-height: 22px;
  margin: 10px 0 0;
  border: none;
  transition: .3s ease-in-out;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-reset:hover {
  color: #000;
  background-color: #EEE;

}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-head .bee-ally-reset svg {
  width: 20px;
  height: 20px;
  margin-right: 5px;
  display: inline-block;
  vertical-align: middle;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content {
    position: relative;
    z-index: 20;
    margin: 20px  15px;
    border-radius: 15px;
    background-color: #FFF;
    padding: 15px 15px 5px;
    min-height: 100px;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content.bee-ally-first {
    margin-top: -80px;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-title {
    font-size: 16px;
    color: #000;
    font-weight: 500;
    margin: 0 0 20px;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: dense;
    column-gap: 10px;
    text-align: center;
    transition: 0.5s;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options .bee-ally-option {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    overflow: hidden;
    grid-column: span 1;
    line-height: 1.1;
    margin-bottom: 10px;
    height: 120px;
    padding: 10px;
    user-select: none;
    cursor: pointer;
    border-radius: 10px;
    border: 2px solid transparent;
    background-color: rgb(242, 247, 250);
    transition: 0.15s;
    outline: 0px !important;
    color:#000;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options .bee-ally-option svg {
    width: 24px;
    height: 24px;
    margin-bottom: 5px;
}

.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options .bee-ally-option span {
    display: block;
    font-size: 15px;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;;
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options .bee-ally-option:hover {
    border-color: var(--bee-ally-color);
}
.bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options .bee-ally-option.bee-ally-active {
    background-color: var(--bee-ally-color);
    color:#FFF;
}

.bee-accessibility-widget.bee-ally-active {
    z-index: 999999999;
}
.bee-accessibility-widget.bee-ally-active .bee-ally-open {
    display: none;
}
.bee-accessibility-widget.bee-ally-active .bee-ally-panel {
    display: block;
}

@media (max-width: 768px) {
  .bee-accessibility-widget {
    right: 25px;
  }
  .bee-accessibility-widget .bee-ally-panel {
      width: auto;
      max-width: 100%;
      border-radius: 40px;
      padding: 0;
      z-index: 20;
      overflow: hidden;
  }
  .bee-accessibility-widget .bee-ally-panel .bee-ally-inner {
      max-height: 90vh;
  }
}
@media (max-width: 500px) {
  .bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options {
      grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 300px) {
  .bee-accessibility-widget .bee-ally-panel .bee-ally-inner .bee-ally-content .bee-ally-options {
      grid-template-columns: repeat(1, 1fr);
  }
}


/* ====== Opzioni ====== */

/* readable-font - Carattere più leggibile */
html.bee-ally-readable-font,
html.bee-ally-readable-font *:not(.fa):not([class*="fa-"]):not(.fab):not(.fas):not(.far):not(.fal) {
  font-family: "Arial", "Helvetica Neue", Helvetica, sans-serif !important;
  letter-spacing: 0.03em !important;
}

/* large-black-cursor - Cursore grande nero */
html.bee-ally-large-black-cursor, 
html.bee-ally-large-black-cursor * {
  cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23000000" stroke="%23FFFFFF" stroke-width="1" stroke-linejoin="round" d="M18 14.88 8.16 3.15c-.26-.31-.76-.12-.76.28v15.31c0 .36.42.56.7.33l3.1-2.6 1.55 4.25c.08.22.33.34.55.26l1.61-.59a.43.43 0 0 0 .26-.55l-1.55-4.25h4.05c.36 0 .56-.42.33-.7Z"></path></svg>') 19 8, auto !important;
  
}
html.bee-ally-large-black-cursor input,
html.bee-ally-large-black-cursor textarea,
html.bee-ally-large-black-cursor select,
html.bee-ally-large-black-cursor a,
html.bee-ally-large-black-cursor button,
html.bee-ally-large-black-cursor [role="button"],
html.bee-ally-large-black-cursor input *,
html.bee-ally-large-black-cursor textarea *,
html.bee-ally-large-black-cursor select *,
html.bee-ally-large-black-cursor a *,
html.bee-ally-large-black-cursor button *,
html.bee-ally-large-black-cursor [role="button"] * {
  cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23000000" stroke="%23FFFFFF" stroke-width="1" stroke-linejoin="round" d="M10 11V8.99c0-.88.59-1.64 1.44-1.86h.05A1.99 1.99 0 0 1 14 9.05V12v-2c0-.88.6-1.65 1.46-1.87h.05A1.98 1.98 0 0 1 18 10.06V13v-1.94a2 2 0 0 1 1.51-1.94h0A2 2 0 0 1 22 11.06V14c0 .6-.08 1.27-.21 1.97a7.96 7.96 0 0 1-7.55 6.48 54.98 54.98 0 0 1-4.48 0 7.96 7.96 0 0 1-7.55-6.48C2.08 15.27 2 14.59 2 14v-1.49c0-1.11.9-2.01 2.01-2.01h0a2 2 0 0 1 2.01 2.03l-.01.97v-10c0-1.1.9-2 2-2h0a2 2 0 0 1 2 2V11Z"></path></svg>') 20 4, auto !important;
}

/* large-white-cursor - Cursore grande bianco */
html.bee-ally-large-white-cursor, 
html.bee-ally-large-white-cursor * {
  cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23FFF" stroke="%23000" stroke-width="1" stroke-linejoin="round" d="M18 14.88 8.16 3.15c-.26-.31-.76-.12-.76.28v15.31c0 .36.42.56.7.33l3.1-2.6 1.55 4.25c.08.22.33.34.55.26l1.61-.59a.43.43 0 0 0 .26-.55l-1.55-4.25h4.05c.36 0 .56-.42.33-.7Z"></path></svg>') 19 8, auto !important;
}
html.bee-ally-large-white-cursor input,
html.bee-ally-large-white-cursor textarea,
html.bee-ally-large-white-cursor select,
html.bee-ally-large-white-cursor a,
html.bee-ally-large-white-cursor button,
html.bee-ally-large-white-cursor [role="button"],
html.bee-ally-large-white-cursor input *,
html.bee-ally-large-white-cursor textarea *,
html.bee-ally-large-white-cursor select *,
html.bee-ally-large-white-cursor a *,
html.bee-ally-large-white-cursor button *,
html.bee-ally-large-white-cursor [role="button"] * {
  cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23FFFFFF" stroke="%23000000" stroke-width="1" stroke-linejoin="round" d="M10 11V8.99c0-.88.59-1.64 1.44-1.86h.05A1.99 1.99 0 0 1 14 9.05V12v-2c0-.88.6-1.65 1.46-1.87h.05A1.98 1.98 0 0 1 18 10.06V13v-1.94a2 2 0 0 1 1.51-1.94h0A2 2 0 0 1 22 11.06V14c0 .6-.08 1.27-.21 1.97a7.96 7.96 0 0 1-7.55 6.48 54.98 54.98 0 0 1-4.48 0 7.96 7.96 0 0 1-7.55-6.48C2.08 15.27 2 14.59 2 14v-1.49c0-1.11.9-2.01 2.01-2.01h0a2 2 0 0 1 2.01 2.03l-.01.97v-10c0-1.1.9-2 2-2h0a2 2 0 0 1 2 2V11Z"></path></svg>') 20 4, auto !important;
}

/* dark-contrast - Contrasto scuro */
html.bee-ally-dark-contrast body,
html.bee-ally-dark-contrast body {
    color: rgb(255, 255, 255) !important;
    background-color: rgb(24, 24, 24) !important;
}
html.bee-ally-dark-contrast body h1,
html.bee-ally-dark-contrast body h2,
html.bee-ally-dark-contrast body h3,
html.bee-ally-dark-contrast body h4,
html.bee-ally-dark-contrast body h5,
html.bee-ally-dark-contrast body h6 {
    color: rgb(80, 208, 160) !important;
}
html.bee-ally-dark-contrast body h1 *,
html.bee-ally-dark-contrast body h2 *,
html.bee-ally-dark-contrast body h3 *,
html.bee-ally-dark-contrast body h4 *,
html.bee-ally-dark-contrast body h5 *,
html.bee-ally-dark-contrast body h6 * {
    color: rgb(80, 208, 160) !important;
}
html.bee-ally-dark-contrast body img {
    background-color: rgba(255, 255, 255, 0.7) !important;
}
html.bee-ally-dark-contrast body svg {
    background-color: rgb(24, 24, 24) !important;
}
html.bee-ally-dark-contrast body svg * {
    fill: rgb(80, 208, 160) !important;
    stroke: rgb(255, 255, 255) !important;
}
html.bee-ally-dark-contrast body input,
html.bee-ally-dark-contrast body select,
html.bee-ally-dark-contrast body textarea {
    color: rgb(255, 255, 255) !important;
    border: 2px solid rgb(255, 255, 255) !important;
    background-color: rgb(24, 24, 24) !important;
}
html.bee-ally-dark-contrast body input::-webkit-input-placeholder,
html.bee-ally-dark-contrast body select::-webkit-input-placeholder,
html.bee-ally-dark-contrast body textarea::-webkit-input-placeholder {
    color: rgb(255, 255, 255) !important;
}
html.bee-ally-dark-contrast body * {
    -webkit-text-fill-color: unset !important;
}

/* light-contrast - Contrasto chiaro */
html.bee-ally-light-contrast body {
    color: rgb(31, 37, 51) !important;
    background-color: rgb(255, 255, 255) !important;
}
html.bee-ally-light-contrast body img {
    background-color: rgba(255, 255, 255, 0.7) !important;
}
html.bee-ally-light-contrast body h1,
html.bee-ally-light-contrast body h2,
html.bee-ally-light-contrast body h3,
html.bee-ally-light-contrast body h4,
html.bee-ally-light-contrast body h5,
html.bee-ally-light-contrast body h6 {
    color: rgb(7, 95, 57) !important;
}
html.bee-ally-light-contrast body h1 *,
html.bee-ally-light-contrast body h2 *,
html.bee-ally-light-contrast body h3 *,
html.bee-ally-light-contrast body h4 *,
html.bee-ally-light-contrast body h5 *,
html.bee-ally-light-contrast body h6 * {
    color: rgb(7, 95, 57) !important;
}
html.bee-ally-light-contrast body svg {
    background-color: rgb(221, 221, 221) !important;
}
html.bee-ally-light-contrast body svg * {
    fill: rgb(7, 95, 57) !important;
    stroke: rgb(255, 255, 255) !important;
}
html.bee-ally-light-contrast body input,
html.bee-ally-light-contrast body select,
html.bee-ally-light-contrast body textarea {
    color: rgb(31, 37, 51) !important;
    border: 2px solid rgb(31, 37, 51) !important;
    background-color: rgb(255, 255, 255) !important;
}
html.bee-ally-light-contrast body input::-webkit-input-placeholder,
html.bee-ally-light-contrast body select::-webkit-input-placeholder,
html.bee-ally-light-contrast body textarea::-webkit-input-placeholder {
    color: rgb(31, 37, 51) !important;
}
html.bee-ally-light-contrast body * {
    -webkit-text-fill-color: unset !important;
}

/* high-contrast - Contrasto elevato */
html.bee-ally-high-contrast {
  --color-accent: #A2530B;
  --color-primary-dark: #994E0F;
}
html.bee-ally-high-contrast header.canvas-open .language-select-box .btn, 
html.bee-ally-high-contrast .route-home header.canvas-open .language-select-box .btn, 
html.bee-ally-high-contrast header .language-select-box .btn, 
html.bee-ally-high-contrast header.sticky .language-select-box .btn, 
html.bee-ally-high-contrast .route-home header.sticky .language-select-box .btn {
    background: #FFF;
    color: var(--color-accent)
}
html.bee-ally-high-contrast header.canvas-open .language-select-box .btn.dropdown-toggle::after, 
html.bee-ally-high-contrast .route-home header.canvas-open .language-select-box .btn.dropdown-toggle::after, 
html.bee-ally-high-contrast header .language-select-box .btn.dropdown-toggle::after, 
html.bee-ally-high-contrast header.sticky .language-select-box .btn.dropdown-toggle::after, 
html.bee-ally-high-contrast .route-home header.sticky .language-select-box .btn.dropdown-toggle::after {
    color: var(--color-accent)
}
html.bee-ally-high-contrast .orange-box .subtitle,
html.bee-ally-high-contrast .bg-primary-custom-dark .epp-ci,
html.bee-ally-high-contrast .bg-primary-custom-dark .epp-ci-cbw,
html.bee-ally-high-contrast .orange-box .btn-orange i,
html.bee-ally-high-contrast .btn-orange i {
    color: var(--color-white);
}
html.bee-ally-high-contrast .orange-box .btn-orange,
html.bee-ally-high-contrast .btn-orange,
html.bee-ally-high-contrast .cities-page .cities-container .btn-orange {
    background-color: var(--color-primary-dark);
    color: var(--color-white);
}
html.bee-ally-high-contrast .btn-back {
    color: #000;
    background-color: #EEE;
}
html.bee-ally-high-contrast .bg-primary-custom-light {
  background-color: #B75206
}
html.bee-ally-high-contrast footer .language-select-box .btn {
    color: #000;
}
html.bee-ally-high-contrast .fullscreen .fullscreen-slider .slick-slide .image-container:after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0,0,0,0.3);
    z-index: 20;
}
html.bee-ally-high-contrast .fullscreen .fullscreen-slider .slick-slide img {
    filter: saturate(70%);
    z-index: 10;
}

/* monochrome - Monocromatico (scala di grigi) */
html.bee-ally-monochrome {
  filter: grayscale(100%) !important;
}

/* high-saturation - Saturazione elevata */
html.bee-ally-high-saturation {
  filter: saturate(150%) !important;
}

/* low-saturation - Saturazione bassa */
html.bee-ally-low-saturation {
  filter: saturate(50%) !important;
}