.demo_outer {
  max-width: 900px;
}
.audios_list {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}
.loading_state {
  width: 32px !important;
  height: 32px !important;
}
.audios_list li {
  border-radius: 6px;
  padding: 12px 8px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-direction: column;
  cursor: pointer;
  transition: all 0.3s ease;
  flex-grow: 1;
}
.audios_list li .demo_icon_wrapper {
  position: relative;
  display: block;
  height: 60px;
}
.audios_list li img {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.audios_list li img.default_icon {
  opacity: 1;
  visibility: visible;
}
.audios_list li img.selected_icon {
  opacity: 0;
  visibility: hidden;
}
.audios_list li.selected img.default_icon {
  opacity: 0;
  visibility: hidden;
}
.audios_list li.selected img.selected_icon {
  opacity: 1;
  visibility: visible;
}
.audios_list li:hover {
  background: #e4e7ea;
}
.audios_list li.group_holder,
.audios_list li.sub_group_holder {
  padding: 0;
  display: flex;
  justify-content: center;
}
.audios_list li.group_holder:hover,
.audios_list li.sub_group_holder:hover {
  background: transparent;
  cursor: unset;
}
.audios_list > li.selected {
  background: #614efa;
}
.audios_list > li.selected span {
  font-weight: 500;
}
.audios_list > li.selected span {
  color: #fff;
}
.audios_list li.selected:hover .animation_holder,
.audios_list li.selected:hover .default_icon {
  display: none;
}
.audios_list.large {
  flex-wrap: wrap;
  max-width: 610px;
  justify-content: center;
  margin: 0 auto;
  gap: 10px;
}
.audios_list.large li {
  background-color: #fff;
}
.audios_list.large > li.selected {
  background-color: #614efa;
}
.audios_list li ul li {
  padding: 0;
  margin: 0 0 12px 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  flex-direction: row;
}
.audios_list li ul li:hover {
  background-color: transparent;
}
.audios_list li ul {
  padding: 0;
}
.audios_list li ul li span {
  font-size: 14px !important;
}
.audios_list li ul li span.radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #a19fad;
  display: flex;
  align-items: center;
  justify-content: center;
}
.audios_list li ul li.selected span.radio {
  border-color: #614efa;
}
.audios_list li ul li.selected span.radio:before {
  width: 10px;
  height: 10px;
  background-color: #614efa;
  content: '';
  border-radius: 50%;
}

.player_wrapper {
  margin-bottom: 48px;
  max-width: 100%;
  width: 610px;
  margin: 0 auto;
  border-radius: 20px;
}
.player_wrapper.large {
  max-width: unset;
  border-radius: 20px;
}
.player_wrapper.large .player {
  width: 100%;
  position: relative;
  z-index: 20;
}
.player_wrapper .player .play-button img {
  width: 50px;
  height: 50px;
}
.player_wrapper .player {
  border-radius: 20px;
  width: 100%;
  position: relative;
  z-index: 20;
  gap: 18px;
}
.player_wrapper.large .switch_wrapper {
  padding-top: 33px;
  padding-bottom: 33px;
  padding-left: 40px;
  padding-right: 40px;
  margin-top: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.player_wrapper.large .switch_wrapper:before {
  content: '';
  width: calc(100% - 88px);
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  top: 0;
  border-top: 1px solid #c3c8cd;
}

.player_wrapper .switch_wrapper {
  position: relative;
  z-index: 9;
  display: flex;
  align-items: center;
  justify-content: center;
}

.player_wrapper .play_button {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #614efa;
  flex: 0 0 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0px 12px 40px rgba(97, 78, 250, 0.2);
}
.player_wrapper .play_button .play_state,
.player_wrapper .play_button .pause_state {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}
.player_wrapper.large .play_button .play_state,
.player_wrapper.large .play_button .pause_state,
.player_wrapper.large .play_button,
.player_wrapper.large .loading_state {
  width: 50px !important;
  height: 50px !important;
}
.player_wrapper.large .loading_state .spinner_inner {
  transform: translateZ(0) scale(0.8);
}

.player_wrapper .play_button:hover {
  opacity: 0.8;
}
.player_wrapper .play_button .hidden {
  display: none;
}
.player_wrapper .play_button span {
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  cursor: pointer;
}

.progress {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 14px 8px;
  display: flex;
}
.playing_progress {
  width: 0px;
  top: 0;
  left: 0;
  position: absolute;
  overflow: hidden;
}
.player_wrapper.large .progress {
  max-width: 729px;
}
.player {
  display: flex;
  justify-content: center;
  align-items: center;
}
span.loading_state {
  width: 50px;
  height: 50px;
  background-color: #614efa;
  border-radius: 50%;
}
span.loading_state .loading {
  width: 100%;
  height: 100%;
}
.play_button span.loading_state {
  display: none;
  overflow: hidden;
  pointer-events: none;
}

.play_button[disabled] span.loading_state {
  display: block;
}
.play_button[disabled] span:not(.loading_state) {
  display: none;
}
@keyframes spinner_inner {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.spinner_inner div {
  position: absolute;
  width: 30px;
  height: 30px;
  border: 4px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spinner_inner 0.5s linear infinite;
  top: 29px;
  left: 29px;
  box-sizing: content-box;
}
.loading_spinner {
  width: 100%;
  height: 100%;
  display: inline-block;
  overflow: hidden;
  background: none;
}
.spinner_inner {
  width: 100%;
  height: 100%;
  position: relative;
  transform: translateZ(0) scale(0.56);
  backface-visibility: hidden;
  transform-origin: 0 0; /* see note above */
}
.switch_wrapper {
  position: relative;
}
.animation_arrow {
  position: absolute;
  bottom: -32px;
  left: 44%;
  transform: translateX(-50%);
  display: none;
  max-width: 100px;
}
.animation_arrow.show {
  display: block;
}
.noise_cancellation_switch {
  margin: 0 16px;
  width: 47px;
  height: 22px;
  display: inline-flex;
  background-color: #614efa;
  border-radius: 50px;
  overflow: hidden;
}
.noise_cancellation_switch.switch.off {
  background-color: #c3c8cd;
}
.noise_cancellation_switch.switch span {
  font-size: unset;
  display: flex;
  display: -webkit-flex;
  justify-content: center;
  -webkit-justify-content: center;
  align-items: center;
  transition: all 0.2s ease;
  position: relative;
  margin-left: 28px;
}
.player_wrapper.large .noise_cancellation_switch {
  width: 67px;
  height: 32px;
}
.player_wrapper.large .noise_cancellation_switch span em {
  width: 22px;
  height: 22px;
}
.player_wrapper.large .noise_cancellation_switch.switch.off span {
  margin-left: 6px;
}
.player_wrapper.large .noise_cancellation_switch.switch span {
  margin-left: 39px;
}

#noise_cancellation-switch {
  box-sizing: unset !important;
}
.noise_cancellation_switch.switch.off span {
  margin-left: 3px;
  font-size: unset;
}
.noise_cancellation_switch.switch em {
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #fff;
}
.noise_cancellation_switch.switch.switch_disabled em {
  background-color: #f2f3f4;
}
.noise_cancellation_switch.switch.switch_disabled {
  pointer-events: none;
}

.progress input[type='range'] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  background: #d3d2d9;
  outline: none;
  opacity: 1;
  transition: opacity 0.2s;
  border-radius: 24px;
}
.progress input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  background: #614efa;
  border-radius: 50%;
  box-shadow: 0px 4px 8px rgba(97, 78, 250, 0.2);
}

.progress input[type='range']::-moz-range-thumb {
  width: 16px;
  height: 16px;
  background: #614efa;
  border-radius: 50%;
  filter: drop-shadow(0px 4px 8px rgba(97, 78, 250, 0.2));
}

.progress input[type='range']::-ms-thumb {
  width: 16px;
  height: 16px;
  background: #614efa;
  border-radius: 50%;
  cursor: pointer;
  filter: drop-shadow(0px 4px 8px rgba(97, 78, 250, 0.2));
}

@media screen and (max-width: 1024px) {
  .demo_outer {
    padding: 32px;
  }
  .audios_list li .demo_icon_wrapper {
    height: 48px;
  }
  #demo h3 {
    font-size: 40px;
    line-height: 50px;
    margin-bottom: 48px;
  }
  .demo_outer h6 {
    font-size: 22px;
  }
  .demo_icon_wrapper img {
    width: auto;
    height: 100%;
  }
}
@media screen and (max-width: 769px) {
  .player_wrapper .switch_wrapper {
    margin-top: 8px;
  }
  .player_wrapper .switch_wrapper strong {
    font-size: 11px;
  }
  .player_wrapper .play_button {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
  }
  .player_wrapper .play_button img {
    width: 18px;
    height: 18px;
  }
  .player_wrapper {
    padding-left: 24px;
    padding-right: 24px;
  }

  .audios_list li:hover img.default_icon {
    display: block;
  }
  .audios_list li:hover .animation_holder {
    display: none;
  }
  .demo_title {
    text-align: center;
  }
  .audios_list {
    margin: 0 auto;
  }
  .audios_list li span {
    padding: 0;
  }
  .audios_list li span {
    font-weight: 500;
  }
  #demo:not(body.noise-cancellation #demo, body.developers #demo) {
    background-color: #fff;
    padding-top: 0 !important;
  }
  .player_wrapper.large .switch_wrapper:before {
    width: calc(100% - 20px);
  }
  .player_wrapper.large .player {
    padding-left: 10px;
    padding-right: 10px;
    background-color: #f2f3f4;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
  }
  .player_wrapper.large .switch_wrapper {
    padding-left: 10px;
    padding-right: 10px;
    background-color: #e4e7ea;
    margin-top: -20px;
    padding-top: 40px;
    padding-bottom: 20px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    height: auto;
  }
  .player_wrapper .playing_progress {
    height: 44px;
  }
  .player_wrapper .playing_progress img {
    max-width: unset !important;
  }
  .demo_outer h6 {
    text-align: center;
  }
  .demo_outer .subtitle {
    font-size: 17px !important;
    line-height: 30px !important;
  }
  #demo h3 {
    font-size: 32px;
    line-height: 44px;
    margin-bottom: 40px;
  }
  .demo_outer {
    padding: 0;
    text-align: center;
  }
  .audios_list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
  }
  .audios_list li {
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0;
    min-height: unset;
    max-width: unset;
    flex: 0 0 calc(33.33% - 12px);
    white-space: nowrap;
  }
  .progress {
    padding: 14px 0;
  }
  .audios_list li .demo_icon_wrapper {
    display: inline-flex;
    align-items: center;
    min-height: unset;
  }
  .demo_icon_wrapper {
    margin-right: 12px;
    width: 48px;
    height: 48px;
  }
  .demo_icon_wrapper img {
    height: auto;
    width: 55px;
  }
  .audios_list li span {
    word-spacing: unset;
    width: auto;
    text-align: center;
    display: block;
  }
  .audios_list li .demo_icon_wrapper {
    align-items: center;
  }
  .animation_arrow {
    left: 34%;
  }
  .audios_list li.group_holder {
    flex-direction: column;
  }
}
