html {
  box-sizing: border-box;
}

body {
  margin: 0;
}

*,
*:before,
*:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: transparent;
}

:host {
  font-family: var(--c-font-family);
}

::-ms-reveal {
  display: none;
}

:host(c-slider) {
  /**
   * @prop --c-slider-background-color-active-disabled: Active disabled slider background color
   * @prop --c-slider-background-color-active: Slider active background color
   * @prop --c-slider-background-color-disabled: Disabled slider background color
   * @prop --c-slider-background-color: Slider background color
   * @prop --c-slider-thumb-background-color-disabled: Disabled slider thumb background color
   * @prop --c-slider-thumb-background-color-hover: Slider thumb background color on hover
   * @prop --c-slider-thumb-background-color: Slider thumb background color
   * @prop --c-slider-tick-color-active: Slider active tick color
   * @prop --c-slider-tick-color: Slider tick color
   * @prop --c-slider-tooltip-background-color: Slider tooltip background color
   * @prop --c-slider-tooltip-text-color: Slider tooltip text color
   */
  --_c-slider-background-color-active-disabled: var(--c-slider-background-color-active-disabled, var(--c-tertiary-400));
  --_c-slider-background-color-active: var(--c-slider-background-color-active, var(--c-primary-500));
  --_c-slider-background-color-disabled: var(--c-slider-background-color-disabled, rgba(var(--c-tertiary-rgb), 0.2));
  --_c-slider-background-color: var(--c-slider-background-color, rgba(var(--c-tertiary-rgb), 0.2));
  --_c-slider-thumb-background-color-disabled: var(--c-slider-thumb-background-color-disabled, var(--c-tertiary-500));
  --_c-slider-thumb-background-color-hover: var(--c-slider-thumb-background-color-hover, rgba(var(--c-primary-rgb), 0.2));
  --_c-slider-thumb-background-color: var(--c-slider-thumb-background-color, var(--c-primary-600));
  --_c-slider-tick-color-active: var(--c-slider-tick-color-active, var(--c-white));
  --_c-slider-tick-color: var(--c-slider-tick-color, var(--c-tertiary-500));
  --_c-slider-tooltip-background-color: var(--c-slider-tooltip-background-color, var(--c-primary-900));
  --_c-slider-tooltip-text-color: var(--c-slider-tooltip-text-color, var(--c-white));
  --_c-slider-outline: none;
  --_c-slider-thumb-scale: 1;
  --_c-slider-thumb-shadow-size: 8px;
  --_c-slider-tooltip-opacity: 0;
  --_c-slider-tooltip-y: -4px;
  /** Mozilla Firefox */
}
:host(c-slider) > div {
  display: block;
  isolation: isolate;
  padding-block: 8px;
}
:host(c-slider) .c-slider__label {
  display: block;
  margin-bottom: 16px;
  margin-top: -8px;
}
:host(c-slider) .c-slider__label span.required {
  color: var(--c-error-600);
}
:host(c-slider) .c-slider__wrapper {
  padding-inline: 10px;
  position: relative;
  /** Mozilla Firefox */
}
@-moz-document url-prefix() {
  :host(c-slider) .c-slider__wrapper {
    padding-inline: 0;
  }
}
:host(c-slider) input[type=range] {
  align-items: center;
  appearance: none;
  background-color: transparent;
  display: flex;
  height: 8px;
  margin: 0;
  position: relative;
  width: 100%;
}
:host(c-slider) input[type=range]:focus-visible {
  --_c-slider-outline: 2px var(--_c-slider-thumb-background-color) solid;
  outline: none;
}
:host(c-slider) input[type=range]::-webkit-slider-runnable-track {
  width: calc(100% - 20px);
  margin: 0 -20px;
}
:host(c-slider) input[type=range]:active {
  --_c-slider-thumb-scale: 1.33;
  --_c-slider-thumb-shadow-size: 0;
}
:host(c-slider) input[type=range]::-webkit-slider-container {
  display: flex;
  padding: 0 10px;
}
:host(c-slider) input[type=range]::-webkit-slider-thumb {
  appearance: none;
  background-color: var(--_c-slider-thumb-background-color);
  border-radius: 100%;
  cursor: pointer;
  height: 24px;
  outline-offset: 4px;
  outline: var(--_c-slider-outline);
  position: relative;
  transform-origin: center;
  transform: scale(var(--_c-slider-thumb-scale));
  transition: box-shadow 0.3s cubic-bezier(0.075, 0.82, 0.165, 1), transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  width: 24px;
  z-index: 1;
}
:host(c-slider) input[type=range]::-webkit-slider-thumb:hover {
  box-shadow: 0 0 0 var(--_c-slider-thumb-shadow-size) var(--_c-slider-thumb-background-color-hover);
}
:host(c-slider) input[type=range][disabled] {
  --_c-slider-background-color: var(--_c-slider-background-color-disabled);
  --_c-slider-background-color-active: var(--_c-slider-background-color-active-disabled);
  --_c-slider-thumb-background-color: var(--_c-slider-thumb-background-color-disabled);
  pointer-events: none;
}
@-moz-document url-prefix() {
  :host(c-slider) input[type=range]::-moz-range-thumb {
    appearance: none;
    background-color: var(--_c-slider-thumb-background-color);
    border-radius: 100%;
    border: 0;
    cursor: pointer;
    height: 24px;
    outline-offset: 2px;
    outline: var(--_c-slider-outline);
    position: relative;
    transform-origin: center;
    transform: scale(var(--_c-slider-thumb-scale));
    transition: box-shadow 0.3s cubic-bezier(0.075, 0.82, 0.165, 1), transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
    width: 24px;
    z-index: 1;
  }
  :host(c-slider) input[type=range]::-moz-range-thumb:hover {
    box-shadow: 0 0 0 var(--_c-slider-thumb-shadow-size) var(--_c-slider-thumb-background-color-hover);
  }
}
:host(c-slider) .c-slider__tooltip-wrapper {
  height: 0;
  margin-inline: 2px;
  position: relative;
  /** Mozilla Firefox */
}
@-moz-document url-prefix() {
  :host(c-slider) .c-slider__tooltip-wrapper {
    margin-inline: 12px;
  }
}
:host(c-slider) .c-slider__tooltip-wrapper span {
  align-items: center;
  border-radius: 50%;
  box-sizing: border-box;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  left: calc(1% * var(--_c-slider-position));
  opacity: var(--_c-slider-tooltip-opacity);
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, var(--_c-slider-tooltip-y));
  transition: opacity 0.3s cubic-bezier(0.075, 0.82, 0.165, 1), transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  width: 24px;
}
:host(c-slider) .c-slider__tooltip-wrapper span::before {
  align-items: center;
  background: var(--_c-slider-tooltip-background-color);
  border-radius: 4px;
  bottom: 100%;
  color: var(--_c-slider-tooltip-text-color);
  content: attr(data-tooltip);
  display: inline-flex;
  flex-wrap: nowrap;
  height: 30px;
  padding: 6px;
  position: absolute;
  top: -42px;
  white-space: nowrap;
}
:host(c-slider) .c-slider__tooltip-wrapper span::after {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid var(--_c-slider-tooltip-background-color);
  content: "";
  height: 0;
  left: 50%;
  margin: -42px 0 0 -6px;
  position: absolute;
  width: 0;
}
:host(c-slider) .c-slider__ticks {
  --c-slider-tick-color: var(--c-tertiary-400);
  align-items: center;
  background: linear-gradient(to right, var(--_c-slider-background-color-active) calc(1% * var(--_c-slider-position)), var(--_c-slider-background-color) calc(1% * var(--_c-slider-position)));
  border-radius: 100vw;
  display: flex;
  height: 8px;
  justify-content: space-between;
  margin: -8px auto 0;
  pointer-events: none;
  position: relative;
  width: calc(100% - 16px);
  z-index: -1;
  /** Mozilla Firefox */
}
@-moz-document url-prefix() {
  :host(c-slider) .c-slider__ticks {
    width: calc(100% - 20px);
  }
}
:host(c-slider) .c-slider__ticks--disabled {
  --_c-slider-background-color-active: var(--_c-slider-background-color-active-disabled);
}
:host(c-slider) .c-slider__ticks span {
  border-radius: 50%;
  font-size: 12px;
  height: 4px;
  padding: 0;
  position: relative;
  width: 4px;
}
:host(c-slider) .c-slider__ticks span.ticks {
  background-color: var(--_c-slider-tick-color);
}
:host(c-slider) .c-slider__ticks span.ticks.active {
  background-color: var(--_c-slider-tick-color-active);
}
:host(c-slider) .c-slider__ticks span.ticks:first-child, :host(c-slider) .c-slider__ticks span.ticks:last-child {
  background-color: transparent;
}
:host(c-slider) .c-slider__ticks span.labels::after {
  content: attr(data-value);
  left: 2px;
  position: absolute;
  top: 16px;
  transform: translate(-50%);
}

:host(c-slider.c-slider--labels) > div {
  padding-bottom: 24px;
}

:host(c-slider:focus-within),
:host(c-slider:hover) {
  --_c-slider-tooltip-opacity: 1;
  --_c-slider-tooltip-y: -8px;
}