:root {
  --accessi-accent: #129ed9;
  --accessi-accent-light: #b8eaff;
  --accessi-accent-lighter: #f1fbff;
  --accessi-accent-darker: #0f7bb3;
  --accessi-white: #fff;
  --accessi-black-soften: #111111;

  --accessi-primary-50: #f4efff;
  --accessi-primary-100: #eadfff;
  --accessi-primary-200: #dfceff;
  --accessi-primary-300: #d4beff;
  --accessi-primary-400: #caadff;
  --accessi-primary-500: #be9dff;
  --accessi-primary-600: #b38dff;
  --accessi-primary-700: #a97cff;
  --accessi-primary-800: #9d6cff;
  --accessi-primary-900: #8a5eff;

  --accessi-gray-50: #f9fafb;

  --accessi-gray-500: #64748b;

  --accessi-gray-900: #0f172a;
}

.inprogress {
  outline: 2px solid red !important;
  outline-offset: 2px;
}
.needtest {
  outline: 2px solid blue !important;
  outline-offset: -2px;
}
.accessi-disabled {
  pointer-events: none;
  opacity: 0.5;
  cursor: not-allowed;
}

.accessi-u-pointer,
.accessi-cursor-pointer {
  cursor: pointer;
}

.accessi-access-btn {
  padding: 0.5rem;
  line-height: 0;
  position: fixed;
  bottom: 2rem;
  left: auto;
  right: 2rem;
  z-index: 9999;
  border-radius: 1rem;
  background-color: var(--accessi-primary-400);
  background: var(
    --Original-Gradient,
    linear-gradient(228deg, #8a5eff 2.36%, #00c2a8 103.54%)
  );

  & svg.accessi-access-btn-icon {
    width: 2rem;
    height: auto;
    display: block;
  }

  &:hover,
  &:focus,
  &:active,
  &:focus-visible {
    outline: 1px solid var(--accessi-accent);
  }
  & span.accessi-active-indicator {
    display: none !important;
  }
  &.accessi-active {
    outline: 2px solid var(--accessi-primary-900);
    span.accessi-active-indicator {
      display: block !important;
      position: absolute !important;
      top: -50% !important;
      /* bottom: -1.5rem !important; */
      left: -50% !important;
      transform: translate(50%, 50%) !important;
      color: #fff !important;
      background-color: #ff6a22 !important;
      font-size: 0rem !important;
      border-radius: 20rem !important;
      line-height: 1 !important;
      padding: 0.125rem !important;
      text-align: center !important;
    }
  }
}

.accessi-modal {
  font-family:
    system-ui,
    -apple-system,
    Arial,
    'Segoe UI',
    Verdana,
    Georgia,
    Roboto,
    Oxygen,
    Ubuntu,
    Cantarell,
    'Open Sans',
    'Helvetica Neue',
    sans-serif;

  & :is(h1, h2, h3, h4, h5, h6, p, span, a, li) {
    font-family: inherit;
    margin: 0;
  }
  --inline-offset: 1.5rem;
  --max-width: 90vw;
  --head-foot-height: 2rem;
  --container-padding: 1.75rem;
  --accessi-range-margin-block: 1.125rem;
  --accessi-range-track-height: 0.525rem;
  --accessi-range-track-radius: 0.08125rem;
  --accessi-range-track-border-width: 0.0125rem;
  --accessi-range-thumb-width: 1rem;
  --accessi-range-thumb-height: 2.25rem;
  --accessi-range-thumb-radius: 0.1875rem;
  --accessi-range-thumb-border-width: 1px;
  --accessi-range-track-bg: var(--accessi-accent);
  --accessi-range-track-bg-focus: var(--accessi-accent-darker);
  --accessi-range-track-bg-lower: var(--accessi-accent-darker);
  --accessi-range-track-border: var(--accessi-black-soften);
  --accessi-range-track-shadow:
    1px 1px 1px rgba(0, 0, 0, 0.65), 0 0 1px rgba(13, 13, 13, 0.65);
  --accessi-range-thumb-bg: var(--accessi-white);
  --accessi-range-thumb-border: var(--accessi-black-soften);
  --accessi-range-thumb-shadow:
    1px 1px 1px rgba(0, 0, 0, 0.65), 0 0 1px rgba(13, 13, 13, 0.65);
  border-radius: 1rem;
  background-color: var(--accessi-white);
  display: none;
  position: fixed;
  top: auto;
  bottom: 2rem;
  left: auto;
  right: var(--inline-offset);
  border: 1px solid #ccc;
  z-index: 9999;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  min-width: min(480px, var(--max-width));
  max-width: var(--max-width);
  height: calc(100dvh - 4rem);
  overflow: clip;

  &.is-open {
    display: block;
  }

  & .accessi-modal__btn .icon-mpa {
    display: inline-block;
    font-size: 1.25rem;
    line-height: 1;
  }

  & .accessi-modal__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow: hidden;
    height: 100%;

    & .accessi-modal__header {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      padding: var(--container-padding);

      & .accessi-modal__brand {
        display: flex;
        align-items: center;
        gap: 0.5rem;

        & .accessi-modal__logo {
          background-color: var(--accessi-primary-50);
          border-radius: 1rem;
          padding: 0.75rem;
          line-height: 1;
        }

        & .accessi-modal__title {
          color: #0b1f3a;
          font-size: 1.25rem;
          font-style: normal;
          font-weight: 700;
          line-height: 1.94194rem;
          letter-spacing: -0.03238rem;
        }
      }

      & .accessi-modal__actions {
        display: flex;
        flex-direction: row;
        gap: 0.5rem;

        & .accessi-modal__btn {
          padding: 0.75rem;
          background-color: var(--accessi-primary-50);
          border-radius: 1rem;
          display: flex;
          align-items: center;
          border: none;
          color: #6a7282;
          transition: 300ms;
          line-height: 0;

          & .icon-mpa {
            display: inline-block;
            font-size: 1.25rem;
            line-height: 1;
          }

          & i {
            transition: 300ms;
          }

          &:hover {
            background-color: var(--accessi-primary-100);
            & i {
              transform: rotate(-45deg);
            }
          }
        }
      }
    }

    & .accessi-modal__main {
      height: calc(100% - calc(2 * var(--head-foot-height)));
      overflow: hidden scroll;
      padding: 0.5rem;
      padding: var(--container-padding);
      padding-block-start: 0;

      & .accessi-acc {
        overflow: clip;
        margin-bottom: 0.5rem;

        & .accessi-acc__trigger {
          display: flex;
          justify-content: space-between;
          flex-direction: row;
          flex-wrap: nowrap;
          align-items: center;
          gap: 1rem;
          font-size: 1.25rem;
          background-color: var(--accessi-gray-50);
          color: var(--accessi-gray-900);
          padding: 1rem;
          transition: 300ms;
          font-weight: 500;
          border-radius: 1rem;

          &.active {
            font-weight: 700;

            & .accessi-acc__caret {
              transform: rotateX(180deg);
            }
          }

          & .accessi-acc__head {
            display: flex;
            gap: 1rem;
            align-items: center;

            & .accessi-acc__icon {
              display: flex;
              padding: 0.635rem;
              font-size: 1.25rem;
              color: var(--accessi-primary-900);
              background-color: var(--accessi-primary-50);
              border-radius: 0.75rem;
              width: 2.75rem;
              height: 2.75rem;
              align-items: center;
              justify-content: center;
            }

            & .accessi-acc__label {
              display: flex;
              flex-direction: column;
              gap: 0;

              & .accessi-acc__title {
                color: var(--accessi-gray-900);
                font-size: 1.125rem;
                font-weight: 700;
                line-height: 1.5;
                letter-spacing: 0.05rem;
              }

              & .accessi-acc__summary {
                color: var(--accessi-primary-900);
                font-size: 0.875rem;
                font-weight: 400;
                line-height: 1.25;
                letter-spacing: 0.05rem;

                &:empty {
                  display: none;
                }
              }
            }
          }

          & .accessi-acc__meta {
            display: flex;
            flex-direction: row;
            gap: 1rem;
            align-items: center;

            & .accessi-acc__badge {
              color: var(--accessi-white);
              font-size: 0.75rem;
              font-weight: 700;
              line-height: 1;
              background-color: var(--accessi-primary-900);
              border-radius: 1000px;
              padding: 0.5rem;
              width: 1.75rem;
              height: 1.75rem;
              display: flex;
              align-items: center;
              justify-content: center;

              &:empty {
                display: none;
              }
            }

            & .accessi-acc__caret {
              font-size: 1.25rem;
              color: var(--accessi-gray-500);
              transition: 300ms;
            }
          }
        }

        & .accessi-acc__panel {
          gap: 1rem;
          text-align: center;
          max-height: 0;
          transition: 300ms ease;
          background-color: var(--accessi-white);

          &.active {
            max-height: 1000px;
            padding-block: 0.5rem;
          }

          & .accessi-opt {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
            min-height: 8rem;
            border: 1px solid var(--accessi-primary-50);
            border-radius: 1.5rem;
            padding: 1rem;
            text-align: center;
            font-size: 1.125rem;
            transition: 300ms ease;
            position: relative;
            background-color: var(--accessi-white);
            color: var(--accessi-black-soften);
            justify-content: center;

            color: #0b1f3a;
            text-align: center;
            font-size: 1.125rem;
            font-weight: 600;
            line-height: 1;

            & .accessi-opt__icon {
              font-size: 1.5rem;
              color: var(--accessi-primary-900);
            }

            & .accessi-opt__hint {
              position: absolute;
              top: auto;
              bottom: -0.75rem;
              left: 50%;
              transform: translate(-50%, 0%);
              width: fit-content;
              font-size: 0.75rem;
              background: #111;
              color: #fff;
              padding: 0.125rem 0.25rem;
              border-radius: 0.5rem;
            }

            &.active.accessi-opt--toggle {
              background-color: var(--accessi-primary-50);
              /* color: var(--accessi-white); */
            }

            &.accessi-opt--toggle:hover {
              background-color: var(--accessi-primary-50);
            }

            &.active.accessi-opt--toggle:hover {
              color: var(--accessi-black-soften);
            }

            &.active.accessi-opt--range,
            &.active.accessi-opt--slider {
              background-color: var(--accessi-primary-50);
              /* color: var(--accessi-white); */
            }

            &.accessi-opt--slider {
              --ui-slider-height: 0.6rem;
              --ui-dlider-handle-size: calc(2 * var(--ui-slider-height));
              gap: 1rem;

              & .ui-widget.ui-widget-content {
                background-color: var(--accessi-accent-light);
                height: var(--ui-slider-height);
                & span.ui-slider-handle {
                  border-radius: 50%;
                  width: var(--ui-dlider-handle-size);
                  height: var(--ui-dlider-handle-size);
                  background-color: var(--accessi-accent);
                }
              }

              & button.accessi-reset-slider {
                color: var(--accessi-black-soften);
                background-color: #ffffff00;
                border: 1px solid #ffffff00;
                font-weight: 400;
                font-size: 1rem;
                align-self: center;
                padding: 0.25rem 0.75rem;
                border-radius: 0.25rem;
              }

              &.active {
                & .ui-widget.ui-widget-content {
                  background-color: var(--accessi-white);
                  & span.ui-slider-handle {
                    background-color: var(--accessi-accent-light);
                  }
                }
                & button.accessi-reset-slider {
                  color: var(--accessi-white);
                  font-weight: 700;
                  cursor: pointer;
                  border-color: var(--accessi-white);
                }
              }
            }

            &.accessi-opt--range {
              & label {
                /* font-size: 1rem; */
              }

              & .accessi-range-row {
                display: flex;
                align-items: center;
                gap: 0.75rem;
                width: 100%;
              }

              & input.accessi-range {
                -webkit-appearance: none;
                appearance: none;
                margin: 0;
                width: 100%;
                flex: 1;
                cursor: pointer;
                background: transparent;
                --accessi-slider-height: 0.875rem;
                --accessi-slider-bg: var(--accessi-primary-50);
                --accessi-slider-thumb-bg: var(--accessi-primary-900);

                &:focus {
                  outline: none;
                }

                &::-webkit-slider-runnable-track {
                  width: 100%;
                  height: var(--accessi-slider-height);
                  cursor: pointer;
                  background: var(--accessi-slider-bg);
                  border-radius: 1000px;
                  border: none;
                }

                &::-webkit-slider-thumb {
                  height: calc(var(--accessi-slider-height) + 0.25rem);
                  width: calc(var(--accessi-slider-height) + 0.25rem);
                  border-radius: 1000px;
                  background: var(--accessi-slider-thumb-bg);
                  border: none;
                  box-shadow: none;
                  cursor: pointer;
                  -webkit-appearance: none;
                  margin-top: calc(
                    (
                        var(--accessi-slider-height) -
                          (var(--accessi-slider-height) + 0.25rem)
                      ) /
                      2
                  );
                }

                &:focus::-webkit-slider-runnable-track {
                  background: var(--accessi-slider-bg);
                }

                &::-moz-range-track {
                  width: 100%;
                  height: var(--accessi-slider-height);
                  cursor: pointer;
                  background: var(--accessi-slider-bg);
                  border-radius: 1000px;
                  border: none;
                }

                &::-moz-range-thumb {
                  height: calc(var(--accessi-slider-height) + 0.25rem);
                  width: calc(var(--accessi-slider-height) + 0.25rem);
                  border-radius: 1000px;
                  background: var(--accessi-slider-thumb-bg);
                  border: none;
                  box-shadow: none;
                  cursor: pointer;
                }

                &::-ms-track {
                  width: 100%;
                  height: var(--accessi-slider-height);
                  cursor: pointer;
                  background: transparent;
                  border-color: transparent;
                  border-width: calc(
                      (var(--accessi-slider-height) + 0.25rem) / 2
                    )
                    0;
                  color: transparent;
                }

                &::-ms-fill-lower {
                  background: var(--accessi-slider-thumb-bg);
                  border: none;
                  border-radius: 1000px;
                }

                &::-ms-fill-upper {
                  background: var(--accessi-slider-bg);
                  border: none;
                  border-radius: 1000px;
                }

                &::-ms-thumb {
                  height: calc(var(--accessi-slider-height) + 0.25rem);
                  width: calc(var(--accessi-slider-height) + 0.25rem);
                  border-radius: 1000px;
                  background: var(--accessi-slider-thumb-bg);
                  border: none;
                  box-shadow: none;
                  cursor: pointer;
                }

                &:focus::-ms-fill-lower {
                  background: var(--accessi-slider-thumb-bg);
                }

                &:focus::-ms-fill-upper {
                  background: var(--accessi-slider-bg);
                }
              }

              & output.accessi-range-value {
                min-width: 3rem;
                text-align: center;
                font-size: 0.875rem;
                font-variant-numeric: tabular-nums;
              }

              & button.accessi-reset-range {
                color: var(--accessi-black-soften);
                background-color: transparent;
                border: none;
                font-weight: 400;
                font-size: 1rem;
                align-self: center;
                /* padding: 0.25rem 0.75rem; */
                border-radius: 0.25rem;
                cursor: pointer;
                /* visibility: hidden; */
                opacity: 0.5;
              }

              &.active {
                & input.accessi-range {
                  --accessi-slider-bg: #ffffff;
                }
                & output.accessi-range-value {
                  /* color: var(--accessi-white); */
                  /* font-weight: 700; */
                }
                & button.accessi-reset-range {
                  /* color: var(--accessi-white); */
                  /* font-weight: 700; */
                  /* border-color: var(--accessi-white); */
                  /* visibility: visible; */
                  opacity: 1;
                }
              }
            }
          }
        }
      }
    }

    & .accessi-modal__footer {
      /* max-height: var(--head-foot-height); */
      min-height: 2rem;
      padding-block: 1rem;

      border-top: 1px solid var(--accessi-primary-50);
      /* background-color: var(--accessi-accent-light); */
      & .mp-copyright {
        text-align: center;
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.25;
        letter-spacing: 0.05rem;
        text-transform: uppercase;
        & a.mp-copyright-link {
          text-decoration: underline;
          transition: 300ms;
          display: inline-block;
          color: #6a7282;
          & .mp-copyright-img {
            transform: translate(-50%, 0%);
            background-color: var(--accessi-white);
            padding: 10px 20px;
            border-radius: 10px;
            box-shadow: 0px 0px 24px 0px #8b0dbb;
            max-width: 150px;
            position: absolute;
            top: auto;
            bottom: 2rem;
            left: 50%;
            transition: all 200ms;
            opacity: 0;
            visibility: hidden;
            transition-timing-function: ease-in-out;
          }
          &:hover {
            color: var(--accessi-black-soften);
            & .mp-copyright-img {
              visibility: visible;
              opacity: 1;
            }
          }
        }
      }
    }
  }
}

@media screen and (max-width: 600px) {
  .accessi-modal {
    --container-padding: 1rem;
    & .accessi-modal__content {
      & .accessi-modal__header {
        & .accessi-modal__brand {
          & .accessi-modal__title {
            font-size: 1rem;
          }
        }
      }

      & .accessi-modal__main {
        & .accessi-acc {
          & .accessi-acc__panel {
            & .accessi-opt {
              font-size: 1rem;
              min-height: auto;
            }
          }
          & .accessi-acc__trigger {
            & .accessi-acc__head {
              & .accessi-acc__label {
                & .accessi-acc__title {
                  font-size: 1rem;
                }
              }
            }
          }
        }
      }
    }
  }

  a.mp-copyright-link {
    & .mp-copyright-img {
      opacity: 0 !important;
      visibility: hidden !important;
      display: none;
    }
  }
  .accessi-modal {
    & .accessi-modal__content {
      & .accessi-modal__header {
        & .accessi-modal__brand {
          max-width: 75%;
        }
      }
    }
  }
}

.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
  border: 1px solid #c5c5c5;
  background: #f6f6f6;
  font-weight: normal;
  color: #454545;
}
.ui-slider-horizontal .ui-slider-handle {
  top: -0.3em;
  margin-left: -0.6em;
}
.ui-slider .ui-slider-handle {
  position: absolute;
  z-index: 2;
  width: 1.2em;
  height: 1.2em;
  cursor: default;
  -ms-touch-action: none;
  touch-action: none;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-right,
.ui-corner-br {
  border-bottom-right-radius: 3px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-left,
.ui-corner-bl {
  border-bottom-left-radius: 3px;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-right,
.ui-corner-tr {
  border-top-right-radius: 3px;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
  border-top-left-radius: 3px;
}
.ui-widget-content {
  border: 1px solid #dddddd;
  background: #ffffff;
  color: #333333;
}
.ui-widget {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
}
.ui-slider {
  position: relative;
  text-align: left;
}
