/* Radio */

.Radio {
  display: flex;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  padding-top: var(--spacing-s);
  padding-bottom: var(--spacing-s);
  width: fit-content;
}

.Radio-outerWrapper {
  position: relative;
  flex-shrink: 0;
  margin-top: var(--spacing-s);
}

.Radio-defaultWrapper {
  border: var(--border);
}

.Radio-errorWrapper {
  border: var(--border);
  border-color: var(--alert);
}

.Radio-outerWrapper--regular {
  height: var(--spacing-2);
  width: var(--spacing-2);
}

.Radio-outerWrapper--tiny {
  height: var(--spacing-l);
  width: var(--spacing-l);
}

.Radio-input {
  opacity: 0;
  position: absolute;
  height: 100%;
  width: 100%;
  z-index: 2;
  margin: 0;
  cursor: pointer;
}

.Radio-labelWrapper {
  padding-left: var(--spacing);
  display: flex;
  flex-direction: column;
}

.Radio-Label {
  display: flex;
  cursor: pointer;
}

.Radio-wrapper {
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  position: absolute;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  z-index: 1;
  transition: var(--duration--fast-01) var(--standard-productive-curve);
}

.Radio--disabled {
  pointer-events: none;
}

.Radio:hover .Radio-wrapper {
  border: var(--spacing-xs) solid var(--secondary-dark);
  background-color: var(--secondary-lighter);
}

.Radio:active .Radio-wrapper {
  background-color: var(--secondary-light);
  border: var(--spacing-xs) solid var(--inverse-lightest);
}

.Radio:hover .Radio-errorWrapper {
  border: var(--border);
  background-color: var(--secondary-lighter);
  border-color: var(--alert-dark);
}

.Radio:active .Radio-errorWrapper {
  border: var(--border);
  background-color: var(--secondary-light);
  border-color: var(--alert-darker);
}

.Radio-input ~ .Radio-wrapper:focus {
  outline: 0;
  box-shadow: var(--shadow-spread) var(--secondary-shadow);
}

.Radio-input ~ .Radio-errorWrapper:focus {
  outline: 0;
  box-shadow: var(--shadow-spread) var(--alert-shadow);
}

.Radio-input:checked ~ .Radio-wrapper:focus {
  outline: 0;
  box-shadow: var(--shadow-spread) var(--primary-shadow);
}

.Radio-input:checked ~ .Radio-errorWrapper:focus {
  outline: 0;
  box-shadow: var(--shadow-spread) var(--primary-shadow);
}

.Radio--disabled .Radio-wrapper {
  border: var(--spacing-xs) solid var(--secondary-light);
  background-color: var(--secondary-lightest);
}

.Radio--disabled .Radio-errorWrapper {
  border: var(--spacing-xs) solid var(--alert-lighter);
  background-color: var(--secondary-lightest);
}

.Radio-input:checked ~ .Radio-wrapper {
  border: var(--spacing) solid var(--primary);
}

.Radio-input:checked ~ .Radio-errorWrapper {
  border: var(--spacing-xs) solid var(--alert);
}

.Radio-input:checked ~ .Radio-wrapper:after {
  display: block;
  transition: var(--duration--fast-01) var(--standard-productive-curve);
}

.Radio-wrapper:after {
  content: '';
  display: none;
  border-radius: 50%;
  background: var(--primary);
}

.Radio-wrapper--regular:after {
  width: var(--spacing);
  height: var(--spacing);
}

.Radio-wrapper--tiny:after {
  width: var(--spacing-m);
  height: var(--spacing-m);
  border: var(--spacing-xs) solid var(--primary);
}

.Radio:hover .Radio-input:checked ~ .Radio-wrapper {
  border: var(--spacing-xs) solid var(--primary-dark);
}

.Radio:hover .Radio-input:checked ~ .Radio-wrapper:after {
  background: var(--primary-dark);
}

.Radio:hover .Radio-input:checked ~ .Radio-wrapper--tiny:after {
  border: var(--spacing-xs) solid var(--primary-dark);
}

.Radio:active .Radio-input:checked ~ .Radio-wrapper {
  background-color: var(--secondary-light);
  border: var(--spacing-xs) solid var(--primary-darker);
}

.Radio:hover .Radio-input:checked ~ .Radio-errorWrapper {
  background-color: var(--secondary-lighter);
  border: var(--spacing-xs) solid var(--alert-dark);
}

.Radio:active .Radio-input:checked ~ .Radio-errorWrapper {
  background-color: var(--secondary-light);
  border: var(--spacing-xs) solid var(--alert-darker);
}

.Radio:active .Radio-input:checked ~ .Radio-wrapper:after {
  background: var(--primary-darker);
}

.Radio:active .Radio-input:checked ~ .Radio-wrapper--tiny:after {
  border: var(--spacing-xs) solid var(--primary-darker);
}

.Radio--disabled .Radio-input:checked ~ .Radio-wrapper {
  border: var(--spacing-xs) solid var(--primary-lighter);
  background-color: var(--secondary-lightest);
}

.Radio--disabled .Radio-input:checked ~ .Radio-errorWrapper {
  border: var(--spacing-xs) solid var(--alert-lighter);
  background-color: var(--secondary-lightest);
}

.Radio--disabled .Radio-input:checked ~ .Radio-wrapper:after {
  background: var(--primary-lighter);
}

.Radio--disabled .Radio-input ~ .Radio-wrapper:focus {
  box-shadow: none;
}

.Radio--disabled .Radio-input ~ .Radio-errorWrapper:focus {
  box-shadow: none;
}
