:root,
:host {
  /* General */
  --va-button-display: inline-flex;
  --va-button-justify-content: center;
  --va-button-align-items: center;
  --va-button-background-image: none;
  --va-button-box-shadow: none;
  --va-button-border-width: 0;
  --va-button-border-color: unset;
  --va-button-border-style: none;
  --va-button-font-weight: 600;
  --va-button-transition: none;
  --va-button-padding: 0;
  --va-button-cursor: pointer;
  /* Small */
  --va-button-sm-size: 1.5rem;
  --va-button-sm-content-py: 0.25rem;
  --va-button-sm-content-px: 0.375rem;
  --va-button-sm-only-icon-content-px: 0.25rem;
  --va-button-sm-font-size: 0.8125rem;
  --va-button-sm-letter-spacing: 0;
  --va-button-sm-line-height: 1rem;
  --va-button-sm-border-radius: 0.125rem;
  --va-button-sm-icon-side-padding: var(--va-button-sm-content-py);
  --va-button-sm-icons-spacing: 0.125rem;
  /* Medium */
  --va-button-size: 2.25rem;
  --va-button-content-py: 0.5rem;
  --va-button-content-px: 0.75rem;
  --va-button-only-icon-content-px: 0.5rem;
  --va-button-font-size: 1rem;
  --va-button-letter-spacing: 0;
  --va-button-line-height: 1.25rem;
  --va-button-border-radius: 0.25rem;
  --va-button-icon-side-padding: var(--va-button-content-py);
  --va-button-icons-spacing: 0.25rem;
  /* Large */
  --va-button-lg-size: 3rem;
  --va-button-lg-content-py: 0.75rem;
  --va-button-lg-content-px: 1rem;
  --va-button-lg-only-icon-content-px: 1rem;
  --va-button-lg-font-size: 1.05rem;
  --va-button-lg-letter-spacing: 0;
  --va-button-lg-line-height: 1.5rem;
  --va-button-lg-border-radius: 0.5rem;
  --va-button-lg-icon-side-padding: var(--va-button-lg-content-py);
  --va-button-lg-icons-spacing: 0.25rem;
  /* Bordered */
  --va-button-bordered-border: 1px;
  --va-button-bordered-style: solid;
}
.va-button {
  position: relative;
  padding: var(--va-button-padding);
  display: var(--va-button-display);
  justify-content: var(--va-button-justify-content);
  align-items: var(--va-button-align-items);
  border-width: var(--va-button-border-width);
  border-color: var(--va-button-border-color);
  border-style: var(--va-button-border-style);
  background-image: var(--va-button-background-image);
  box-shadow: var(--va-button-box-shadow);
  font-family: var(--va-font-family);
  font-weight: var(--va-button-font-weight);
  text-decoration: none;
  text-transform: initial;
  transition: var(--va-button-transition);
  box-sizing: border-box;
  cursor: var(--va-button-cursor);
  z-index: 0;
  vertical-align: top;
}
.va-button::after, .va-button::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  left: 0;
  top: 0;
  z-index: -1;
}
.va-button::before {
  background: var(--va-background-color);
  opacity: var(--va-background-color-opacity);
}
.va-button::after {
  background-color: var(--va-background-mask-color);
  opacity: var(--va-background-mask-opacity);
}
.va-button__content {
  height: 100%;
  display: flex;
  align-items: center;
  z-index: 1;
}
.va-button__content--loading {
  opacity: 0;
}
.va-button--small {
  line-height: var(--va-button-sm-line-height);
  border-radius: var(--va-button-sm-border-radius);
  letter-spacing: var(--va-button-sm-letter-spacing);
  min-height: var(--va-button-sm-size);
  min-width: var(--va-button-sm-size);
}
.va-button--small .va-button__content {
  font-size: var(--va-button-sm-font-size);
  padding: var(--va-button-sm-content-py) var(--va-button-sm-content-px);
}
.va-button--small .va-button__left-icon {
  margin-right: var(--va-button-sm-icons-spacing);
}
.va-button--small .va-button__right-icon {
  margin-left: var(--va-button-sm-icons-spacing);
}
.va-button--small.va-button--bordered .va-button__content {
  padding-top: calc(var(--va-button-sm-content-py) - var(--va-button-bordered-border));
  padding-bottom: calc(var(--va-button-sm-content-py) - var(--va-button-bordered-border));
}
.va-button--small.va-button--left-icon .va-button__content {
  padding-left: var(--va-button-sm-icon-side-padding);
}
.va-button--small.va-button--right-icon .va-button__content {
  padding-right: var(--va-button-sm-icon-side-padding);
}
.va-button--normal {
  line-height: var(--va-button-line-height);
  border-radius: var(--va-button-border-radius);
  letter-spacing: var(--va-button-letter-spacing);
  min-height: var(--va-button-size);
  min-width: var(--va-button-size);
}
.va-button--normal .va-button__content {
  font-size: var(--va-button-font-size);
  padding: var(--va-button-content-py) var(--va-button-content-px);
  line-height: var(--va-button-line-height);
}
.va-button--normal .va-button__left-icon {
  margin-right: var(--va-gap-medium);
}
.va-button--normal .va-button__right-icon {
  margin-left: var(--va-gap-medium);
}
.va-button--normal.va-button--bordered .va-button__content {
  padding-top: calc(var(--va-button-content-py) - var(--va-button-bordered-border));
  padding-bottom: calc(var(--va-button-content-py) - var(--va-button-bordered-border));
}
.va-button--large {
  line-height: var(--va-button-lg-line-height);
  border-radius: var(--va-button-lg-border-radius);
  letter-spacing: var(--va-button-lg-letter-spacing);
  min-height: var(--va-button-lg-size);
  min-width: var(--va-button-lg-size);
}
.va-button--large .va-button__content {
  font-size: var(--va-button-lg-font-size);
  padding: var(--va-button-lg-content-py) var(--va-button-lg-content-px);
}
.va-button--large .va-button__left-icon {
  margin-right: var(--va-button-lg-icons-spacing);
}
.va-button--large .va-button__right-icon {
  margin-left: var(--va-button-lg-icons-spacing);
}
.va-button--large.va-button--bordered .va-button__content {
  padding-top: calc(var(--va-button-lg-content-py) - var(--va-button-bordered-border));
  padding-bottom: calc(var(--va-button-lg-content-py) - var(--va-button-bordered-border));
}
.va-button--large.va-button--left-icon .va-button__content {
  padding-left: var(--va-button-lg-icon-side-padding);
}
.va-button--large.va-button--right-icon .va-button__content {
  padding-right: var(--va-button-lg-icon-side-padding);
}
.va-button--small.va-button--icon-only .va-button__content, .va-button--normal.va-button--icon-only .va-button__content, .va-button--large.va-button--icon-only .va-button__content {
  padding-right: 0;
  padding-left: 0;
}
.va-button--plain {
  min-width: auto;
  min-height: auto;
}
.va-button--plain .va-button__content {
  padding: 0;
  z-index: unset;
}
.va-button--round {
  border-radius: 999px;
}
.va-button--bordered {
  border-width: var(--va-button-bordered-border);
  border-style: var(--va-button-bordered-style);
}
.va-button.va-button--disabled {
  cursor: default;
  opacity: 0.4;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.va-button--icon-only .va-button__left-icon,
.va-button--icon-only .va-button__right-icon {
  margin-left: 0;
  margin-right: 0;
}
.va-button--icon-only .va-button__content {
  padding: 0;
}
.va-button:focus-visible {
  outline: 2px solid var(--va-focus) !important;
  border-radius: "inherit";
}
.va-button--loading {
  pointer-events: none;
}
.va-button--block {
  display: flex;
  min-width: 100%;
}
.va-button__loader {
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}