/*
  Font family is Nunito Sans. Its fallback is Helvetica
*/
/*
  Font sizes have been converted to rem considering a base size of 16px.
*/
/*
*  Z-Index
*  
*  The z-index CSS property sets the z-order of a positioned element and its descendants or flex items. 
*  Overlapping elements with a larger z-index cover those with a smaller one.
*  
*  REF: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
*  REF: https://www.smashingmagazine.com/2019/04/z-index-component-based-web-application/  
*/
/**
 * Define media query values
 */
:host(.block) {
  width: 100%;
  display: flex;
}

:host {
  position: relative;
}

:host:focus-visible {
  outline: none;
}

.button {
  border: none;
  margin: 0;
  padding: 0;
  width: auto;
  overflow: visible;
  outline: none;
  background: transparent;
  /* inherit font & color from ancestor */
  color: inherit;
  font: inherit;
  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
  line-height: normal;
  /* Corrects font smoothing for webkit */
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;
  /* Corrects inability to style clickable `input` types in iOS */
  -webkit-appearance: none;
  /* Remove excess padding and border in Firefox 4+ */
  cursor: pointer;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  height: 100%;
  border-radius: 8px;
  padding-left: 16px;
  padding-right: 16px;
  position: relative;
  box-sizing: border-box;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  transition: all 0.5s;
}
.button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
.button--block {
  width: 100%;
}
.button bds-loading-spinner {
  max-height: 100%;
  position: absolute;
}
.button * {
  pointer-events: none;
}
.button--size-tall {
  padding-top: 14px;
  padding-bottom: 14px;
  height: 40px;
}
.button--size-tall--icon {
  padding-top: 12px;
  padding-bottom: 12px;
  height: 40px;
}
.button--size-standard {
  padding-top: 9px;
  padding-bottom: 9px;
  height: 40px;
}
.button--size-standard bds-loading-spinner {
  width: 32px;
  height: 32px;
  top: calc(50% - 16px);
}
.button--size-standard--icon {
  padding-top: 8px;
  padding-bottom: 8px;
  height: 40px;
}
.button--size-short {
  padding-top: 5px;
  padding-bottom: 5px;
  height: 32px;
}
.button--size-short bds-loading-spinner {
  width: 16px;
  height: 16px;
  top: calc(50% - 8px);
}
.button--size-short--icon {
  padding-top: 4px;
  padding-bottom: 4px;
  height: 32px;
}
.button--size-icon--left {
  padding-left: 16px;
}
.button--size-icon--right {
  padding-right: 16px;
}
.button__icon {
  color: inherit;
  background-color: inherit;
  height: 24px;
  margin-right: 4px;
}
.button__arrow {
  color: inherit;
  background-color: inherit;
  height: 24px;
  margin-left: 2px;
}
.button__content {
  height: 20px;
  display: flex;
  align-items: center;
  z-index: 1;
}
.button::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: 0;
  border-radius: 8px;
}
.button:hover::before {
  background-color: var(--color-hover, rgba(0, 0, 0, 0.08));
}
.button:active::before {
  background-color: var(--color-pressed, rgba(0, 0, 0, 0.16));
}
.button__primary {
  background: var(--color-surface-primary, #1e6bf1);
}
.button__primary .typo_buttom,
.button__primary .icon_buttom,
.button__primary .arrow_buttom {
  color: var(--color-content-bright, #ffffff);
}
.button__primary--disabled {
  opacity: 50%;
  pointer-events: none;
  color: var(--color-content-bright, #ffffff);
}
.button__primary--disabled:hover, .button__primary--disabled:active {
  color: var(--color-content-bright, #ffffff);
}
.button__secondary {
  background: transparent;
}
.button__secondary .typo_buttom,
.button__secondary .icon_buttom,
.button__secondary .arrow_buttom {
  color: var(--color-content-default, #454545);
}
.button__secondary--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #637798;
}
.button__secondary--disabled:hover, .button__secondary--disabled:active {
  color: #637798;
}
.button__tertiary {
  background: transparent;
  border: 1px solid var(--color-border-1, #c9c9c9);
}
.button__tertiary .typo_buttom,
.button__tertiary .icon_buttom,
.button__tertiary .arrow_buttom {
  color: var(--color-content-default, #454545);
}
.button__tertiary--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #637798;
  border: 1px solid #637798;
}
.button__tertiary--disabled:hover, .button__tertiary--disabled:active {
  color: #637798;
  border: 1px solid #637798;
}
.button__secondary--white {
  background: transparent;
}
.button__secondary--white .typo_buttom,
.button__secondary--white .icon_buttom,
.button__secondary--white .arrow_buttom {
  color: #ffffff;
}
.button__secondary--white:hover {
  background: rgba(255, 255, 255, 0.3);
  color: #ffffff;
}
.button__secondary--white:active {
  background: rgba(255, 255, 255, 0.4);
  color: #ffffff;
}
.button__secondary--white--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #8ca0b3;
}
.button__secondary--white--disabled:hover, .button__secondary--white--disabled:active {
  color: #8ca0b3;
}
.button__ghost {
  background: transparent;
  border: 1px solid var(--color-border-1, #c9c9c9);
}
.button__ghost .typo_buttom,
.button__ghost .icon_buttom,
.button__ghost .arrow_buttom {
  color: var(--color-content-default, #454545);
}
.button__ghost--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #637798;
  border: 1px solid #637798;
}
.button__ghost--disabled:hover, .button__ghost--disabled:active {
  color: #637798;
  border: 1px solid #637798;
}
.button__delete {
  background: var(--color-delete, #e60f0f);
}
.button__delete .typo_buttom,
.button__delete .icon_buttom,
.button__delete .arrow_buttom {
  color: var(--color-content-bright, #ffffff);
}
.button__delete--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #ba5a5a;
}
.button__delete--disabled:hover, .button__delete--disabled:active {
  color: #ba5a5a;
}
.button__dashed {
  background: transparent;
  border: 1px dashed #3f7de8;
}
.button__dashed .typo_buttom,
.button__dashed .icon_buttom,
.button__dashed .arrow_buttom {
  color: #3f7de8;
}
.button__dashed:hover {
  background: transparent;
  color: #125ad5;
  border: 1px dashed #125ad5;
}
.button__dashed:active {
  background: transparent;
  color: #3f7de8;
  border: 1px dashed #3f7de8;
}
.button__dashed--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #8ca0b3;
  border: 1px dashed #8ca0b3;
}
.button__dashed--disabled:hover, .button__dashed--disabled:active {
  color: #8ca0b3;
  border: 1px dashed #8ca0b3;
}
.button__facebook {
  background: #1877f2;
}
.button__facebook .typo_buttom,
.button__facebook .icon_buttom,
.button__facebook .arrow_buttom {
  color: #f8fbfb;
}
.button__facebook:hover {
  background: #1771e6;
}
.button__facebook:active {
  background: #3f7de8;
  color: #f8fbfb;
}
.button__facebook--disabled {
  opacity: 50%;
  pointer-events: none;
  color: #8ca0b3;
}
.button__facebook--disabled:hover, .button__facebook--disabled:active {
  color: #8ca0b3;
}
.button .hide {
  cursor: not-allowed;
  opacity: 0;
}

.focus:focus-visible {
  display: flex;
  position: absolute;
  border: 2px solid var(--color-focus, #c226fb);
  border-radius: 4px;
  width: 100%;
  height: 100%;
  top: -4px;
  left: -4px;
  padding-right: 4px;
  padding-bottom: 4px;
  outline: none;
}

.disabled {
  pointer-events: none;
}