*,
*::after,
*::before {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
}

:host {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  margin-right: 28px !important;
  margin-bottom: 12px !important;
  display: inline-flex;
  width: 100%;
  vertical-align: bottom;
  -webkit-tap-highlight-color: transparent;
}
:host:last-child, :host:last-of-type {
  margin-right: 0 !important;
}
[alignment=form-distribute] > :host:last-of-type:not(:last-child) {
  margin-right: 28px !important;
}

:host(.vertical) {
  margin-right: 0 !important;
}

:host(.horizontal) {
  margin-bottom: 0 !important;
  width: auto;
}
:host(.horizontal) .duet-label .duet-label-content {
  max-width: 100%;
}

@media (min-width: 48em) {
  :host(.horizontal-responsive) {
    margin-right: 28px !important;
    margin-bottom: 0 !important;
    width: auto;
  }
  :host(.horizontal-responsive):last-child, :host(.horizontal-responsive):last-of-type {
    margin-right: 0 !important;
  }
  [alignment=form-distribute] > :host(.horizontal-responsive):last-of-type:not(:last-child) {
    margin-right: 28px !important;
  }
  :host(.horizontal-responsive) .duet-label .duet-label-content {
    max-width: 100%;
  }
}

:host(.duet-m-0) {
  margin: 0 !important;
}

:host(:last-child:not(:only-child)) {
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

.duet-label {
  position: relative;
  z-index: 100;
  display: flex;
  width: 100%;
  font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: rgb(8, 42, 77);
  hyphens: auto;
  word-break: break-word;
  overflow-wrap: break-word;
  cursor: pointer;
  background: transparent;
}
.duet-theme-turva .duet-label {
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  color: rgb(23, 28, 58);
}
.duet-label .duet-label-content {
  flex-grow: 1;
  font-size: 1rem;
}
.duet-label-hidden .duet-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
}

.duet-radio-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.duet-label::before {
  z-index: 100;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 2px 10px 1px 1px;
  content: "";
  background: rgb(255, 255, 255);
  border: 1px solid rgb(8, 42, 77);
  border-radius: 50%;
}
.duet-theme-turva .duet-label::before {
  border-color: rgb(23, 28, 58);
}
.duet-label.focus::before {
  outline: 2px solid;
  outline-offset: 2px;
  outline-color: rgba(0, 119, 179, 0.8);
}
.duet-theme-turva .duet-label.focus::before, .duet-label.focus::before.duet-theme-turva, .duet-theme-turva2 .duet-label.focus::before, .duet-label.focus::before.duet-theme-turva2 {
  outline-color: rgba(53, 79, 101, 0.8);
}
.duet-theme-turva .duet-label.focus::before {
  outline: 2px solid;
  outline-offset: 2px;
  outline-color: rgba(53, 79, 101, 0.8);
}
.duet-label.checked::after {
  position: absolute;
  top: 6px;
  left: 5px;
  z-index: 200;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  content: "";
  background: rgb(0, 119, 179);
  border-radius: 50%;
}
.duet-theme-turva .duet-label.checked::after {
  background: rgb(23, 28, 58);
}
.duet-label.disabled {
  color: rgb(98, 121, 138);
}
.duet-theme-turva .duet-label.disabled {
  color: rgb(143, 147, 158);
}
.duet-label.disabled::before {
  border-color: rgb(181, 198, 208);
}
.duet-theme-turva .duet-label.disabled::before {
  border-color: rgb(143, 147, 158);
}
.duet-label.disabled.checked::before {
  border: 1px solid rgb(127, 150, 165);
}
.duet-label.disabled.checked::after {
  background: rgb(127, 150, 165);
}
.duet-theme-turva .duet-label.disabled.checked::after {
  background: rgb(143, 147, 158);
  border-color: rgb(143, 147, 158);
}

*::slotted([slot=input]) {
  padding: 14px !important;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 200;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}

*::slotted([slot=input][disabled]) {
  cursor: default;
}

:host(.duet-theme-turva2) .duet-theme-turva .duet-label {
  color: rgb(23, 42, 59);
}
:host(.duet-theme-turva2) .duet-theme-turva .duet-radio + label::before {
  border-color: rgb(23, 42, 59);
}
:host(.duet-theme-turva2) .duet-theme-turva .duet-radio:checked + label::after {
  background: rgb(23, 42, 59);
}
:host(.duet-theme-turva2) .duet-theme-turva .duet-radio[disabled] + label {
  color: rgb(120, 145, 164);
}
:host(.duet-theme-turva2) .duet-theme-turva .duet-radio[disabled] + label::before {
  border-color: rgb(120, 145, 164);
}
:host(.duet-theme-turva2) .duet-theme-turva .duet-radio[disabled]:checked + label::after {
  background: rgb(120, 145, 164);
  border-color: rgb(120, 145, 164);
}