.default-button[disabled],
.circular[disabled],
fieldset[disabled] .default-button,
fieldset[disabled] .circular {
  cursor: not-allowed;
  pointer-events: none;
  --c1: hsl(var(--primary-brand-color-hue), var(--lightness-grey-darkest), var(--lightness-grey-dark));
  --c4: hsl(var(--primary-brand-color-hue), var(--lightness-grey-darkest), var(--lightness-grey-dark));
  opacity: 0.75;
}

.button-cancel[disabled],
fieldset[disabled] .button-cancel {
  cursor: not-allowed;
  pointer-events: none;
  --c1: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c2: hsl(var(--primary-brand-color-hue), var(--lightness-grey-darkest), var(--lightness-grey));
  opacity: 0.75;
}

.default-button.is-loading::after,
.circular.is-loading::after {
  color: transparent !important;
  pointer-events: none;
}

.default-button.is-loading::after,
.circular.is-loading::after {
  position: absolute !important;
  left: calc(50% - (1.25em / 2));
  top: calc(50% - (1.25em / 2));
}

.default-button.is-loading::after,
.circular.is-loading::after {
  -webkit-animation: spinAround 500ms infinite linear;
          animation: spinAround 500ms infinite linear;
  border: 0.125em solid var(--text);
  border-radius: 100vmax;
  border-right-color: transparent;
  border-top-color: transparent;
  content: "";
  display: block;
  height: 1.25em;
  position: relative;
  width: 1.25em;
}

.default-button:active {
  --c1: var(--primary-brand-color-active);
  --c2: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c3: var(--primary-brand-color-active);
  --c4: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  transform: scale(var(--button-scale-transform-active));
}

.default-button:hover:not(:active) {
  --c1: var(--primary-brand-color-hover);
  --c2: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c4: var(--primary-brand-color-hover);
  transform: scale(var(--button-scale-transform-hover));
}

.default-button:focus:not(:active) {
  filter: drop-shadow(0px 0px 0.35em var(--primary-brand-color-active));
}

.button-cancel:active {
  --c1: var(--primary-brand-color-active);
  --c2: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  transform: scale(var(--button-scale-transform-active));
}

.button-cancel:hover:not(:active) {
  --c1: hsl(0, 0%, var(--lightness-black-bis));
  --c2: var(--primary-brand-color-hover);
}

.default-button {
  --w: 11.8em;
  --h: 2.78em;
  --c1: var(--primary-brand-color);
  --c2: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c3: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c4: var(--primary-brand-color);
  --ratio: 7.2;
  --arrow_inner_pos: 12%;
  --arrow_outer_pos: 100%;

  font-size: 1.21875rem;
  background: transparent;
  border: 0;
  outline: 0;
  margin: 1.5vmin;
  cursor: pointer;
  
  position: relative;

  transition: all 250ms;
}

.default-button.is-small {
  font-size: 0.75rem; }
.default-button.is-normal {
  font-size: 1rem; }
.default-button.is-medium {
  font-size: 1.25rem; }
.default-button.is-large {
  font-size: 1.5rem; }

.default-button-inner {
  background-color: var(--c1);
  color: var(--c2);
  min-width: var(--w);
  min-height: var(--h);
  
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-evenly;

  clip-path: polygon(
      var(--arrow_inner_pos) 0%,
      calc(100% - var(--arrow_inner_pos)) 0%,
      var(--arrow_outer_pos) 50%,
      calc(100% - var(--arrow_inner_pos)) 100%,
      var(--arrow_inner_pos) 100%,
      calc(100% - var(--arrow_outer_pos)) 50%);
  transition: all 250ms;
}

.default-button-inner.border {
  --arrow_inner_pos: 11%;
  background-color: var(--c3);
  color: var(--c4);
  min-width: calc(var(--w) - 0.75em);
  min-height: calc(var(--h) - 0.5em);

  clip-path: polygon(
      var(--arrow_inner_pos) 0%,
      calc(100% - var(--arrow_inner_pos)) 0%,
      var(--arrow_outer_pos) 50%,
      calc(100% - var(--arrow_inner_pos)) 100%,
      var(--arrow_inner_pos) 100%,
      calc(100% - var(--arrow_outer_pos)) 50%);
      
  position: absolute;
}

.button-cancel {
  --w: 10em;
  --h: 2.5em;
  --c1: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  --c2: var(--primary-brand-color);

  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  margin: 1.5vmin;
}

.circular {
  --c1: var(--primary-brand-color);
  --c2: hsl(var(--scheme-main-hue), var(--scheme-main-saturation), var(--lightness-black-bis));
  align-items: center;
  outline: none;
  box-shadow: rgba(0, 0, 0, 0.2) 0 0.25em 1.25em 0;
  color: var(--c1);
  font-size: 1.25em;
  background-color: var(--c2);
  width: 7.5em;
  justify-content: space-evenly;
  display: flex;
  border: 0.25em solid var(--c1);
  border-radius: 50%;
  flex-direction: column;
  height: 7.5em;
  box-sizing: border-box;
  padding: 1em;
  text-align: center;
  transition: all 0.25s ease-in;
}

.circular:active {
  background-color: #301D30;
}

.circular > img {
  min-width: 5vmin;
  min-height: 5vmin;
  max-width: 8vmin;
  max-height: 8vmin;
}
