:host {
  position: relative;
  box-sizing: border-box;
  font-feature-settings: "cv03", "cv04", "cv11";
}
:host *, :host *:before, :host *:after {
  box-sizing: inherit;
}

/**
 * @prop --symbol-color: The inactive color for symbols.
 * @prop --symbol-color-active: The active color for symbols.
 * @prop --symbol-size: The size of symbols.
 * @prop --symbol-spacing: The spacing to use around symbols.
 */
:host {
  --symbol-color: var(--sl-color-gray-300);
  --symbol-color-active: #ffbe00;
  --symbol-size: 1.2rem;
  --symbol-spacing: var(--sl-spacing-xxx-small);
  display: inline-flex;
}

.rating {
  position: relative;
  display: inline-flex;
  border-radius: var(--sl-border-radius-medium);
  vertical-align: middle;
}
.rating:focus {
  outline: none;
}
.rating.focus-visible:focus {
  box-shadow: 0 0 0 var(--sl-focus-ring-width) var(--sl-focus-ring-color-primary);
}

.rating__symbols {
  display: inline-flex;
  position: relative;
  font-size: var(--symbol-size);
  line-height: 0;
  color: var(--symbol-color);
  white-space: nowrap;
  cursor: pointer;
}
.rating__symbols > * {
  padding: var(--symbol-spacing);
}

.rating__symbols--indicator {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--symbol-color-active);
  pointer-events: none;
}

.rating__symbol {
  transition: var(--sl-transition-fast) transform;
}

.rating__symbol--hover {
  transform: scale(1.2);
}

.rating--disabled .rating__symbols,
.rating--readonly .rating__symbols {
  cursor: default;
}
.rating--disabled .rating__symbol--hover,
.rating--readonly .rating__symbol--hover {
  transform: none;
}

.rating--disabled {
  opacity: 0.5;
}
.rating--disabled .rating__symbols {
  cursor: not-allowed;
}