:root {
  --form-radio-bg: #fff;
  --form-radio-color: var(--border-color);
  --form-radio-active-color: var(--primary);
  --form-radio-box-size: 1.7rem;
  --form-radio-size: 1.1rem;
  --form-radio-margin: 1.2em 0;
  --form-radio-text-margin: 1em;
  --form-radio-text-color: var(--text-base);
  --form-radio-letter-spacing: 0;
  --form-radio-description-color: #888;
  --form-radio-title-weight: 600;
  --form-radio-font-size: 1em;
}

.dh-form-radio-wrap {
  position: relative;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  margin: 1.2em 0;
  margin: var(--form-radio-margin);
}

.dh-form-radio-icon {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 1px solid currentColor;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: 50%;
  background-color: #fff;
  background-color: var(--form-radio-bg);
  width: 1.7rem;
  width: var(--form-radio-box-size);
  height: 1.7rem;
  height: var(--form-radio-box-size);
  color: var(--border-color);
  color: var(--form-radio-color);
  -webkit-transition-property: color, border-color, background-color;
  -o-transition-property: color, border-color, background-color;
  transition-property: color, border-color, background-color;
}

.dh-form-radio-input:focus + .dh-form-radio-icon {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.dh-form-radio-input:checked + .dh-form-radio-icon {
  color: var(--primary);
  color: var(--form-radio-active-color);
}

.dh-form-radio-input:checked + .dh-form-radio-icon::after {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

.dh-form-radio-icon::after {
  content: '';
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  background-color: var(--primary);
  background-color: var(--form-radio-active-color);
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.dh-form-radio-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
}

.dh-form-radio-text {
  line-height: 1.3;
  color: var(--text-base);
  color: var(--form-radio-text-color);
  margin-left: 1em;
  margin-left: var(--form-radio-text-margin);
  letter-spacing: 0;
  letter-spacing: var(--form-radio-letter-spacing);
}

.dh-form-radio-title {
  margin: 0 0 0.2em;
  font-weight: 600;
  font-weight: var(--form-radio-title-weight);
  font-size: 1em;
  font-size: var(--form-radio-font-size);
}

.dh-form-radio-description {
  font-size: 1em;
  font-size: var(--form-radio-font-size);
  color: #888;
  color: var(--form-radio-description-color);
}
