.bm-button-wrap {
  box-sizing: border-box;
  width: 100%;
}

.bm-button-wrap *,
.bm-button-wrap *::before,
.bm-button-wrap *::after {
  box-sizing: border-box;
}

.bm-button {
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  max-width: 100%;
  min-height: 34px;
  text-align: center;
  text-decoration: none !important;
  line-height: 1.2;
  font-weight: var(--bm-font-weight, 400);
  font-style: var(--bm-font-style, normal);
  vertical-align: middle;
  cursor: pointer;
  margin: var(--bm-margin, 0);
  padding: var(--bm-padding, 10px 18px);
  border: var(--bm-border-width, 0) var(--bm-border-style, solid) var(--bm-border-color, #5d433c);
  border-radius: var(--bm-radius, 6px);
  background: var(--bm-bg, #5d433c) !important;
  color: var(--bm-color, #fff) !important;
  font-size: var(--bm-font-size-desktop, 16px);
  letter-spacing: var(--bm-letter-spacing, 0);
  transform: perspective(1px) translateZ(0);
  transition: background .24s ease, color .24s ease, border-color .24s ease, box-shadow .24s ease, transform .24s ease, font-size .24s ease, letter-spacing .24s ease, border-radius .24s ease;
}

.bm-button:hover,
.bm-button:focus {
  background: var(--bm-bg-hover, var(--bm-bg, #444)) !important;
  color: var(--bm-color-hover, var(--bm-color, #fff)) !important;
  border-color: var(--bm-border-color-hover, var(--bm-border-color, #5d433c)) !important;
  font-size: var(--bm-font-size-hover, var(--bm-font-size-desktop, 16px)) !important;
  letter-spacing: var(--bm-letter-spacing-hover, var(--bm-letter-spacing, 0)) !important;
  text-decoration: none !important;
}

@media (max-width: 640px) {
  .bm-button {
    font-size: var(--bm-font-size-mobile, var(--bm-font-size-desktop, 16px));
  }

  .bm-button:hover,
  .bm-button:focus {
    font-size: var(--bm-font-size-hover, var(--bm-font-size-mobile, var(--bm-font-size-desktop, 16px))) !important;
  }
}

.bm-label {
  position: relative;
  z-index: 2;
  display: inline-block;
  transition: opacity .24s ease, transform .24s ease;
}

.bm-label--mobile,
.bm-label--hover {
  display: none;
}

.bm-button.has-hover-label {
  display: inline-grid;
  grid-template-areas: "label";
}

.bm-button.has-hover-label .bm-label {
  grid-area: label;
  align-self: center;
  justify-self: center;
}

.bm-button.has-hover-label .bm-label--normal {
  opacity: 1;
  transform: translateY(0);
}

.bm-button.has-hover-label:hover .bm-label--hover.bm-label--desktop,
.bm-button.has-hover-label:focus .bm-label--hover.bm-label--desktop {
  display: inline-block;
}

.bm-button.has-hover-label .bm-label--hover {
  opacity: 0;
  transform: translateY(6px);
}

.bm-button.has-hover-label:hover .bm-label--normal,
.bm-button.has-hover-label:focus .bm-label--normal {
  opacity: 0;
  transform: translateY(-6px);
}

.bm-button.has-hover-label:hover .bm-label--hover,
.bm-button.has-hover-label:focus .bm-label--hover {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 640px) {
  .bm-label--desktop {
    display: none;
  }

  .bm-label--normal.bm-label--mobile {
    display: inline-block;
  }

  .bm-label--hover.bm-label--mobile {
    display: none;
  }

  .bm-button.has-hover-label:hover .bm-label--hover.bm-label--desktop,
  .bm-button.has-hover-label:focus .bm-label--hover.bm-label--desktop {
    display: none;
  }

  .bm-button.has-hover-label:hover .bm-label--hover.bm-label--mobile,
  .bm-button.has-hover-label:focus .bm-label--hover.bm-label--mobile {
    display: inline-block;
  }
}

.bm-button::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  opacity: 0;
  background: var(--bm-bg-hover, var(--bm-bg, #444));
  pointer-events: none;
  transition: transform .28s ease, opacity .28s ease, border-radius .28s ease;
}

.hvr-grow:hover { transform: scale(1.08); }
.hvr-shrink:hover { transform: scale(.94); }
.hvr-rotate:hover { transform: rotate(4deg); }
.hvr-grow-rotate:hover { transform: scale(1.07) rotate(-4deg); }
.hvr-float:hover,
.hvr-push:hover { transform: translateY(-4px); }
.hvr-sink:hover { transform: translateY(4px); }
.hvr-forward:hover { transform: translateX(6px); }
.hvr-backward:hover { transform: translateX(-6px); }
.hvr-bounce-in:hover { transform: scale(1.12); transition-timing-function: cubic-bezier(.47,2.02,.31,-.36); }
.hvr-bounce-out:hover { transform: scale(.9); transition-timing-function: cubic-bezier(.47,2.02,.31,-.36); }
.hvr-skew:hover { transform: skew(-8deg); }
.hvr-skew-forward:hover { transform: skew(-8deg); }
.hvr-skew-backward:hover { transform: skew(8deg); }

.hvr-pulse:hover,
.hvr-pulse-grow:hover,
.hvr-pulse-shrink:hover,
.hvr-bob:hover,
.hvr-hang:hover,
.hvr-wobble-horizontal:hover,
.hvr-wobble-vertical:hover,
.hvr-wobble-to-bottom-right:hover,
.hvr-wobble-to-top-right:hover,
.hvr-wobble-top:hover,
.hvr-wobble-bottom:hover,
.hvr-wobble-skew:hover,
.hvr-buzz:hover,
.hvr-buzz-out:hover,
.hvr-pop:hover {
  animation-duration: .75s;
  animation-timing-function: linear;
  animation-iteration-count: 1;
}

.hvr-pulse:hover { animation-name: bm-pulse; animation-iteration-count: infinite; }
.hvr-pulse-grow:hover { animation-name: bm-pulse-grow; animation-iteration-count: infinite; }
.hvr-pulse-shrink:hover { animation-name: bm-pulse-shrink; animation-iteration-count: infinite; }
.hvr-pop:hover { animation-name: bm-pop; }
.hvr-bob:hover { animation-name: bm-bob; animation-iteration-count: infinite; }
.hvr-hang:hover { animation-name: bm-hang; animation-iteration-count: infinite; }
.hvr-wobble-horizontal:hover { animation-name: bm-wobble-horizontal; }
.hvr-wobble-vertical:hover { animation-name: bm-wobble-vertical; }
.hvr-wobble-to-bottom-right:hover,
.hvr-wobble-to-top-right:hover,
.hvr-wobble-top:hover,
.hvr-wobble-bottom:hover,
.hvr-wobble-skew:hover { animation-name: bm-wobble-skew; }
.hvr-buzz:hover,
.hvr-buzz-out:hover { animation-name: bm-buzz; }

.hvr-sweep-to-right::before,
.hvr-bounce-to-right::before { transform: scaleX(0); transform-origin: 0 50%; }
.hvr-sweep-to-left::before,
.hvr-bounce-to-left::before { transform: scaleX(0); transform-origin: 100% 50%; }
.hvr-sweep-to-bottom::before,
.hvr-bounce-to-bottom::before { transform: scaleY(0); transform-origin: 50% 0; }
.hvr-sweep-to-top::before,
.hvr-bounce-to-top::before { transform: scaleY(0); transform-origin: 50% 100%; }
.hvr-sweep-to-right::before,
.hvr-sweep-to-left::before,
.hvr-sweep-to-bottom::before,
.hvr-sweep-to-top::before,
.hvr-bounce-to-right::before,
.hvr-bounce-to-left::before,
.hvr-bounce-to-bottom::before,
.hvr-bounce-to-top::before,
.hvr-radial-out::before,
.hvr-rectangle-out::before,
.hvr-shutter-out-horizontal::before,
.hvr-shutter-out-vertical::before {
  opacity: 1;
}

.hvr-sweep-to-right:hover::before,
.hvr-sweep-to-left:hover::before,
.hvr-sweep-to-bottom:hover::before,
.hvr-sweep-to-top:hover::before,
.hvr-bounce-to-right:hover::before,
.hvr-bounce-to-left:hover::before,
.hvr-bounce-to-bottom:hover::before,
.hvr-bounce-to-top:hover::before { transform: scale(1); }
.hvr-bounce-to-right::before,
.hvr-bounce-to-left::before,
.hvr-bounce-to-bottom::before,
.hvr-bounce-to-top::before { transition-timing-function: cubic-bezier(.52,1.64,.37,.66); }

.hvr-radial-out::before {
  border-radius: 100%;
  transform: scale(0);
}

.hvr-radial-out:hover::before { transform: scale(2); }

.hvr-radial-in::before,
.hvr-rectangle-in::before,
.hvr-shutter-in-horizontal::before,
.hvr-shutter-in-vertical::before {
  opacity: 1;
  background: var(--bm-bg, #5d433c);
  transform: scale(1);
}

.hvr-radial-in:hover::before,
.hvr-rectangle-in:hover::before { transform: scale(0); opacity: 0; }
.hvr-rectangle-out::before { transform: scale(0); }
.hvr-rectangle-out:hover::before { transform: scale(1); }
.hvr-shutter-out-horizontal::before { transform: scaleX(0); }
.hvr-shutter-out-horizontal:hover::before { transform: scaleX(1); }
.hvr-shutter-out-vertical::before { transform: scaleY(0); }
.hvr-shutter-out-vertical:hover::before { transform: scaleY(1); }
.hvr-shutter-in-horizontal:hover::before { transform: scaleX(0); }
.hvr-shutter-in-vertical:hover::before { transform: scaleY(0); }

.hvr-border-fade:hover { box-shadow: inset 0 0 0 4px rgba(255,255,255,.28); }
.hvr-hollow:hover { background: transparent !important; }
.hvr-trim:hover { box-shadow: inset 0 0 0 4px rgba(255,255,255,.45); }
.hvr-ripple-in:hover { box-shadow: inset 0 0 0 4px rgba(255,255,255,.26), 0 0 0 4px rgba(0,0,0,.08); }
.hvr-outline-in:hover { box-shadow: inset 0 0 0 3px rgba(255,255,255,.38); }
.hvr-round-corners:hover { border-radius: 999px !important; }
.hvr-reveal:hover { box-shadow: inset 0 0 0 3px rgba(255,255,255,.35); }

.hvr-underline-from-left,
.hvr-underline-from-center,
.hvr-underline-from-right,
.hvr-underline-reveal,
.hvr-overline-reveal,
.hvr-overline-from-left,
.hvr-overline-from-center,
.hvr-overline-from-right {
  overflow: visible;
}

.hvr-underline-from-left::after,
.hvr-underline-from-center::after,
.hvr-underline-from-right::after,
.hvr-underline-reveal::after,
.hvr-overline-reveal::after,
.hvr-overline-from-left::after,
.hvr-overline-from-center::after,
.hvr-overline-from-right::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  z-index: 3;
  height: 3px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform .25s ease;
}

.hvr-underline-from-left::after,
.hvr-underline-from-center::after,
.hvr-underline-from-right::after,
.hvr-underline-reveal::after { bottom: -4px; }
.hvr-overline-reveal::after,
.hvr-overline-from-left::after,
.hvr-overline-from-center::after,
.hvr-overline-from-right::after { top: -4px; }
.hvr-underline-from-left::after,
.hvr-overline-from-left::after { transform-origin: 0 50%; }
.hvr-underline-from-center::after,
.hvr-overline-from-center::after { transform-origin: 50% 50%; }
.hvr-underline-from-right::after,
.hvr-overline-from-right::after { transform-origin: 100% 50%; }
.hvr-underline-from-left:hover::after,
.hvr-underline-from-center:hover::after,
.hvr-underline-from-right:hover::after,
.hvr-underline-reveal:hover::after,
.hvr-overline-reveal:hover::after,
.hvr-overline-from-left:hover::after,
.hvr-overline-from-center:hover::after,
.hvr-overline-from-right:hover::after { transform: scaleX(1); }

.hvr-shadow:hover { box-shadow: 0 10px 22px rgba(0,0,0,.22); }
.hvr-grow-shadow:hover { transform: scale(1.05); box-shadow: 0 12px 26px rgba(0,0,0,.25); }
.hvr-float-shadow:hover { transform: translateY(-5px); box-shadow: 0 16px 28px rgba(0,0,0,.24); }
.hvr-glow:hover { box-shadow: 0 0 16px rgba(250,148,3,.55); }
.hvr-shadow-radial:hover { box-shadow: 0 18px 18px -14px rgba(0,0,0,.65); }
.hvr-box-shadow-outset:hover { box-shadow: 3px 3px 0 rgba(0,0,0,.25); }
.hvr-box-shadow-inset:hover { box-shadow: inset 3px 3px 8px rgba(0,0,0,.25); }

@keyframes bm-pulse {
  25% { transform: scale(1.06); }
  75% { transform: scale(.97); }
}

@keyframes bm-pulse-grow {
  to { transform: scale(1.08); }
}

@keyframes bm-pulse-shrink {
  to { transform: scale(.94); }
}

@keyframes bm-pop {
  50% { transform: scale(1.16); }
}

@keyframes bm-bob {
  0%, 100% { transform: translateY(-4px); }
  50% { transform: translateY(0); }
}

@keyframes bm-hang {
  0%, 100% { transform: translateY(4px); }
  50% { transform: translateY(0); }
}

@keyframes bm-wobble-horizontal {
  16.65% { transform: translateX(8px); }
  33.3% { transform: translateX(-6px); }
  49.95% { transform: translateX(4px); }
  66.6% { transform: translateX(-2px); }
  83.25% { transform: translateX(1px); }
  100% { transform: translateX(0); }
}

@keyframes bm-wobble-vertical {
  16.65% { transform: translateY(8px); }
  33.3% { transform: translateY(-6px); }
  49.95% { transform: translateY(4px); }
  66.6% { transform: translateY(-2px); }
  83.25% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}

@keyframes bm-wobble-skew {
  16.65% { transform: skew(-12deg); }
  33.3% { transform: skew(10deg); }
  49.95% { transform: skew(-6deg); }
  66.6% { transform: skew(4deg); }
  83.25% { transform: skew(-2deg); }
  100% { transform: skew(0); }
}

@keyframes bm-buzz {
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
