/*!
 * VILLAGE v0.0.3 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
 */
@charset "UTF-8";

/* ¯¯¯¯¯¯¯¯¯ *\
  RADIO
\* ˍˍˍˍˍˍˍˍˍ */
.village-radio-group {
  position: relative;
  max-width: max-content;
}

.village-radio-group input[type=radio] {
  position: absolute;
  margin: 0;
  width: 1.5rem;
  height: 1.5rem;
  opacity: 0;
}

.village-radio-group input[type=radio] + label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding-left: 2rem;
  background-position: calc(-0.25rem + 1px) calc(-0.25rem + 1px), calc(-0.25rem + 1px) calc(-0.25rem + 1px);
  background-size: 1.875rem 1.875rem, 1.875rem 1.875rem;
  background-repeat: no-repeat, no-repeat;
  background-image: radial-gradient(transparent 10px, var(--border-action-high-village-primary) 11px, transparent 12px);
}

.village-radio-group input[type=radio] + label::before {
  content: "";
  width: 1.5rem;
  height: 1.5rem;
  position: absolute;
  top: 0;
  border-radius: 1.5rem;
  margin-left: -2rem;
}

.village-radio-group input[type=radio] + label .village-hint-text {
  margin: 0;
  width: 100%;
}

.village-radio-group--sm input[type=radio] {
  width: 1rem;
  height: 1rem;
  top: 0.25rem;
}

.village-radio-group--sm input[type=radio] + label {
  padding-left: 1.5rem;
  background-position: calc(-0.125rem + 1px) calc(0.25rem - 1px), calc(-0.125rem + 1px) calc(0.25rem - 1px);
  background-size: 1.125rem 1.125rem, 1.125rem 1.125rem;
  background-image: radial-gradient(transparent 6px, var(--border-action-high-village-primary) 7px, transparent 8px);
}

.village-radio-group--sm input[type=radio] + label::before {
  top: 0.25rem;
  width: 1rem;
  height: 1rem;
  border-radius: 1rem;
  margin-left: -1.5rem;
}

.village-radio-rich {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  max-width: 100%;
}

.village-radio-rich input[type=radio] {
  width: 1rem;
  height: 1rem;
  left: 1.75rem;
  top: calc(50% - 0.5rem);
}

.village-radio-rich input[type=radio] + label {
  padding-left: 3.5rem;
  margin-left: 0;
  align-self: stretch;
  min-height: 5rem;
  width: 100%;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-right: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  background-size: 100% 1px, 1px 100%, 100% 1px, 1px 100%, 1.125rem 1.125rem, 1.125rem 1.125rem;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-position: 0 0, 100% 0, 0 100%, 0 0, 1.75rem 50%, 1.75rem 50%;
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-action-high-village-primary) 7px, transparent 8px);
  background-color: var(--background-default-grey);

  --idle: transparent;
  --hover: var(--background-default-grey-hover);
  --active: var(--background-default-grey-active);
}

.village-radio-rich input[type=radio] + label::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin-left: 0;
  border-radius: 0;
}

.village-radio-rich input[type=radio] + label .village-hint-text {
  margin-left: 0;
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label {
  --hover-tint: var(--hover);
  --active-tint: var(--active);
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:hover {
  background-color: var(--hover-tint);
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:active {
  background-color: var(--active-tint);
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:hover + .village-radio-rich__pictogram {
  background-color: var(--hover);
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:active + .village-radio-rich__pictogram {
  background-color: var(--active);
}

.village-radio-rich__pictogram {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  margin-left: -1px;
  padding: 0.25rem;
  width: 5.5rem;
  min-width: 5.5rem;
  align-self: stretch;
  pointer-events: none;
  background-size: 100% 1px, 100% 1px, 1px 100%, 1px calc(100% - 0.5rem);
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-position: 0 0, 0 100%, 100% 0, 0 0.25rem;
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
  background-color: var(--background-default-grey);

  --idle: transparent;
  --hover: var(--background-default-grey-hover);
  --active: var(--background-default-grey-active);
}

.village-radio-rich__pictogram img,
.village-radio-rich__pictogram svg {
  max-width: 3.5rem;
  max-height: 3.5rem;
}

.village-control > .village-radio-rich.village-radio-group {
  margin-top: 0;
  margin-bottom: 0;
}

.village-radio-group input[type=radio]:disabled + label {
  background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px);
}

.village-radio-group input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 10px, var(--border-active-village-primary) 11px, transparent 12px), radial-gradient(var(--background-active-village-primary) 5px, transparent 6px);
}

.village-radio-group input[type=radio]:checked:disabled + label {
  background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px), radial-gradient(var(--background-disabled-grey) 5px, transparent 6px);
}

.village-fieldset--error .village-radio-group input[type=radio] + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-error) 11px, transparent 12px);
}

.village-fieldset--error .village-radio-group input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-error) 11px, transparent 12px), radial-gradient(var(--background-active-village-primary) 5px, transparent 6px);
}

.village-fieldset--valid .village-radio-group input[type=radio] + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-success) 11px, transparent 12px);
}

.village-fieldset--valid .village-radio-group input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-success) 11px, transparent 12px), radial-gradient(var(--background-active-village-primary) 5px, transparent 6px);
}

.village-fieldset--info .village-radio-group input[type=radio] + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-info) 11px, transparent 12px);
}

.village-fieldset--info .village-radio-group input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 10px, var(--border-plain-info) 11px, transparent 12px), radial-gradient(var(--background-active-village-primary) 5px, transparent 6px);
}

.village-fieldset .village-radio-group input[type=radio]:disabled + label {
  background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px);
}

.village-fieldset .village-radio-group input[type=radio]:disabled:checked + label {
  background-image: radial-gradient(transparent 10px, var(--background-disabled-grey) 11px, transparent 12px), radial-gradient(var(--background-disabled-grey) 5px, transparent 6px);
}

.village-radio-group--sm input[type=radio]:disabled + label {
  background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
}

.village-radio-group--sm input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 6px, var(--border-active-village-primary) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-radio-group--sm input[type=radio]:checked:disabled + label {
  background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
}

.village-fieldset--error .village-radio-group--sm input[type=radio] + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px);
}

.village-fieldset--error .village-radio-group--sm input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset--valid .village-radio-group--sm input[type=radio] + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px);
}

.village-fieldset--valid .village-radio-group--sm input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset--info .village-radio-group--sm input[type=radio] + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px);
}

.village-fieldset--info .village-radio-group--sm input[type=radio]:checked + label {
  background-image: radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset .village-radio-group--sm input[type=radio]:disabled + label {
  background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
}

.village-fieldset .village-radio-group--sm input[type=radio]:disabled:checked + label {
  background-image: radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
}

.village-radio-rich input[type=radio]:disabled + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
}

.village-radio-rich input[type=radio]:disabled ~ .village-radio-rich__pictogram svg * {
  fill: var(--text-disabled-grey);
}

.village-radio-rich input[type=radio]:checked + label {
  background-image: linear-gradient(0deg, var(--border-active-village-primary), var(--border-active-village-primary)), linear-gradient(0deg, var(--border-active-village-primary), var(--border-active-village-primary)), linear-gradient(0deg, var(--border-active-village-primary), var(--border-active-village-primary)), linear-gradient(0deg, var(--border-active-village-primary), var(--border-active-village-primary)), radial-gradient(transparent 6px, var(--border-active-village-primary) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-radio-rich input[type=radio]:checked ~ .village-radio-rich__pictogram {
  background-image: linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
}

.village-radio-rich input[type=radio]:checked:disabled + label {
  background-image: linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
}

.village-radio-rich input[type=radio]:checked:disabled ~ .village-radio-rich__pictogram {
  background-image: linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--background-disabled-grey), var(--background-disabled-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
}

.village-fieldset--error .village-radio-rich input[type=radio] + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px);
}

.village-fieldset--error .village-radio-rich input[type=radio]:checked + label {
  background-image: linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), radial-gradient(transparent 6px, var(--border-plain-error) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset--valid .village-radio-rich input[type=radio] + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px);
}

.village-fieldset--valid .village-radio-rich input[type=radio]:checked + label {
  background-image: linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), radial-gradient(transparent 6px, var(--border-plain-success) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset--info .village-radio-rich input[type=radio] + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px);
}

.village-fieldset--info .village-radio-rich input[type=radio]:checked + label {
  background-image: linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), radial-gradient(transparent 6px, var(--border-plain-info) 7px, transparent 8px), radial-gradient(var(--background-active-village-primary) 3px, transparent 4px);
}

.village-fieldset .village-radio-rich input[type=radio]:disabled + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px);
}

.village-fieldset .village-radio-rich input[type=radio]:disabled:checked + label {
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), radial-gradient(transparent 6px, var(--background-disabled-grey) 7px, transparent 8px), radial-gradient(var(--background-disabled-grey) 3px, transparent 4px);
}

.village-fieldset .village-fieldset__content .village-radio-group:not(.village-radio-rich) input[type=radio] + label {
  background-position: calc(-0.25rem + 1px) calc(0.5rem + 1px), calc(-0.25rem + 1px) calc(0.5rem + 1px);
}

.village-fieldset .village-fieldset__content .village-radio-group--sm:not(.village-radio-rich) input[type=radio] + label {
  background-position: calc(-0.125rem + 1px) calc(1rem - 1px), calc(-0.125rem + 1px) calc(1rem - 1px);
}

.village-fieldset .village-fieldset__content .village-radio-rich {
  margin-top: 0.5rem;
  margin-bottom: 1rem;
}

.village-fieldset .village-fieldset__content .village-radio-rich:last-child {
  margin-bottom: 0.75rem;
}

.village-fieldset .village-fieldset__content .village-radio-rich:first-child {
  margin-top: 0;
}

.village-fieldset--inline .village-fieldset__content .village-radio-rich:not(:last-child) {
  margin-right: 0.75rem;
  margin-bottom: 0.5rem;
}

.village-fieldset--inline .village-fieldset__content .village-radio-rich:first-child {
  margin-top: 0.75rem;
}

.village-fieldset--inline .village-fieldset__content .village-radio-rich:first-child .village-radio-rich__img {
  top: 1rem;
}

.village-fieldset--inline .village-fieldset__content .village-radio-rich__img {
  top: 0.75rem;
}

.village-fieldset--inline .village-hint-text + .village-fieldset__content .village-radio-rich:first-child {
  margin-top: 1.5rem;
}

.village-radio-rich__img {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  margin-left: -1px;
  padding: 0.25rem;
  width: 5.5rem;
  min-width: 5.5rem;
  align-self: stretch;
  pointer-events: none;
  background-size: 100% 1px, 100% 1px, 1px 100%, 1px calc(100% - 0.5rem);
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-position: 0 0, 0 100%, 100% 0, 0 0.25rem;
  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
  background-color: var(--background-default-grey);

  --idle: transparent;
  --hover: var(--background-default-grey-hover);
  --active: var(--background-default-grey-active);
}

.village-radio-rich__img img,
.village-radio-rich__img svg {
  max-width: 3.5rem;
  max-height: 3.5rem;
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:hover + .village-radio-rich__img {
  background-color: var(--hover);
}

.village-radio-rich input[type=radio]:not(:disabled) ~ label:active + .village-radio-rich__img {
  background-color: var(--active);
}

.village-radio-rich input[type=radio]:disabled ~ .village-radio-rich__img svg * {
  fill: var(--text-disabled-grey);
}

.village-radio-rich input[type=radio]:checked ~ .village-radio-rich__img {
  background-image: linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--background-action-high-village-primary), var(--background-action-high-village-primary)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
}

.village-radio-rich input[type=radio]:checked:disabled ~ .village-radio-rich__img {
  background-image: linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
}
@media (min-width: 36em) {
  /*! media sm */
}
@media (min-width: 48em) {
  /*! media md */
}
@media (min-width: 62em) {
  /*! media lg */
}
@media (min-width: 78em) {
  /*! media xl */
}
