.flag-wrap__flag__icon {
  width: var(--form-check-height);
  height: var(--form-check-height);
  background: var(--colour-neutral);
  border: solid 1px var(--colour-title);
  border-radius: 5px;
  font-size: 1.2rem;
  color: var(--colour-neutral);
  transition: background 0.15s;
  line-height: var(--form-check-height);
  text-align: center;
}
.icon-c.flag-wrap__flag__icon {
  display: -webkit-flex !important;
  display: flex !important;
}

.flag-wrap {
  line-height: 1;
}
.flag-wrap__flag {
  position: relative;
  min-height: var(--form-check-height);
  display: block;
}
.flag-wrap__flag + .flag-wrap__flag {
  margin-top: calc(var(--spacing-internal) / 2);
}
.flag-wrap__flag input {
  position: absolute;
  z-index: -1;
  height: 0;
  width: 0;
  pointer-events: none;
}
.flag-wrap__flag input:not([disabled]) ~ * {
  cursor: pointer;
}
.flag-wrap__flag input[disabled] ~ * {
  cursor: not-allowed;
}
.keyboard-input .flag-wrap__flag input:focus ~ .flag-wrap__flag__icon {
  box-shadow: inset 0 0 0 2px var(--colour-two);
}
.flag-wrap__flag__icon {
  position: absolute;
  left: 0;
  top: 0;
}
.flag-wrap__flag__text {
  vertical-align: top;
  min-height: var(--form-check-height);
  cursor: pointer;
  padding-left: calc(var(--form-check-height) + 10px);
  line-height: var(--form-check-height);
  overflow: hidden;
  display: inline-block;
  color: var(--form-label-colour);
}
.flag-wrap__flag input[type=checkbox] ~ .flag-wrap__flag__icon:before, .flag-wrap__flag input[type=checkbox] ~ .flag-wrap__flag__icon:after {
  content: "";
  position: absolute;
  width: 3px;
  background: var(--colour-neutral);
  -webkit-transform-origin: bottom left;
  transform-origin: bottom left;
  height: 0;
}
.flag-wrap__flag input[type=checkbox] ~ .flag-wrap__flag__icon:before {
  -webkit-transform: rotate(-225deg);
  transform: rotate(-225deg);
  transition: height 0.1s linear;
  bottom: 12px;
  left: 7px;
}
.flag-wrap__flag input[type=checkbox] ~ .flag-wrap__flag__icon:after {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: height 0.1s ease-out 0.1s;
  bottom: 7px;
  left: 8px;
}
.flag-wrap__flag input[type=checkbox]:checked ~ .flag-wrap__flag__icon {
  background: var(--colour-one);
  border-color: var(--colour-one);
}
.flag-wrap__flag input[type=checkbox]:checked ~ .flag-wrap__flag__icon:before {
  height: 7px;
}
.flag-wrap__flag input[type=checkbox]:checked ~ .flag-wrap__flag__icon:after {
  height: 12px;
}
.flag-wrap__flag input[type=radio] ~ .flag-wrap__flag__icon {
  border-radius: 50%;
}
.flag-wrap__flag input[type=radio] ~ .flag-wrap__flag__icon:after {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: center;
  transform-origin: center;
  width: var(--form-check-height);
  height: var(--form-check-height);
  border-radius: 50%;
  background: var(--colour-two);
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.flag-wrap__flag input[type=radio]:checked ~ .flag-wrap__flag__icon:after {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
}
.flag-wrap--row {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  gap: 5px 10px;
}
.label:not(.label--hide) .flag-wrap--row {
  margin-top: 6px;
}
.flag-wrap--row .flag-wrap__flag + .flag-wrap__flag {
  margin-top: 0;
}
.flag-wrap--row--spaced {
  margin-left: calc(var(--spacing-internal) * -1);
}
.flag-wrap--row--spaced .flag-wrap__flag {
  margin-left: var(--spacing-internal);
}