.mb-wrapper{display:inline-flex;width:auto;max-width:100%;box-sizing:border-box;vertical-align:middle;margin:0 .35rem .35rem 0;align-items:center;justify-content:flex-start}
.mb-wrapper.mb-align-left{justify-content:flex-start}
.mb-wrapper.mb-align-center,.mb-wrapper.mb-align-right,.mb-wrapper.mb-layout-line{display:flex;width:100%;margin-right:0}
.mb-wrapper.mb-align-center{justify-content:center}
.mb-wrapper.mb-align-right{justify-content:flex-end}
.mb-wrapper.mb-layout-line.mb-align-left{justify-content:flex-start}
.mb-wrapper:has(>.mb-button.mb-full-width){display:flex;width:100%;margin-right:0}

.mb-button,
.mb-button *{box-sizing:border-box}

.mb-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:var(--mb-min-width);max-width:100%;
  cursor:pointer;text-decoration:none!important;user-select:none;-webkit-tap-highlight-color:transparent;
  background:var(--mb-bg);color:var(--mb-color);
  border:var(--mb-border-width) solid var(--mb-border-color);
  border-radius:var(--mb-radius);padding:var(--mb-py) var(--mb-px);
  font-size:var(--mb-fs);font-weight:var(--mb-fw);letter-spacing:var(--mb-ls);line-height:1.15;
  box-shadow:var(--mb-shadow);
  transition:transform var(--mb-duration) var(--mb-easing),
             box-shadow var(--mb-duration) var(--mb-easing),
             background-color var(--mb-duration) var(--mb-easing),
             background var(--mb-duration) var(--mb-easing),
             color var(--mb-duration) var(--mb-easing),
             border-color var(--mb-duration) var(--mb-easing),
             filter var(--mb-duration) var(--mb-easing),
             opacity var(--mb-duration) var(--mb-easing);
  position:relative;overflow:hidden;isolation:isolate;vertical-align:middle;
}

.mb-button>span{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-width:0}
.mb-button:hover,.mb-button:focus-visible{
  background:var(--mb-hover-bg);color:var(--mb-hover-color);border-color:var(--mb-hover-border-color);
  box-shadow:var(--mb-hover-shadow);outline:none;
}
.mb-button:focus-visible{outline:2px solid var(--mb-hover-border-color);outline-offset:3px}
.mb-button.mb-full-width{display:flex;width:100%}
.mb-button.mb-uppercase{text-transform:uppercase}

/* Varianten */
.mb-variant-solid{background:var(--mb-bg);color:var(--mb-color);border-color:var(--mb-border-color)}
.mb-variant-outline{background:transparent;color:var(--mb-border-color);border-color:var(--mb-border-color);box-shadow:none}
.mb-variant-outline:hover,.mb-variant-outline:focus-visible{background:var(--mb-hover-bg);color:var(--mb-hover-color);border-color:var(--mb-hover-border-color);box-shadow:var(--mb-hover-shadow)}
.mb-variant-soft-outline{background:var(--mb-soft-bg);color:var(--mb-border-color);border-color:var(--mb-border-color);box-shadow:none}
.mb-variant-soft-outline:hover,.mb-variant-soft-outline:focus-visible{background:var(--mb-hover-bg);color:var(--mb-hover-color);border-color:var(--mb-hover-border-color);box-shadow:var(--mb-hover-shadow)}
.mb-variant-ghost{background:transparent;color:var(--mb-border-color);border-color:transparent;box-shadow:none}
.mb-variant-ghost:hover,.mb-variant-ghost:focus-visible{background:var(--mb-soft-bg);color:var(--mb-hover-border-color);border-color:var(--mb-hover-border-color);box-shadow:none}
.mb-variant-glass{background:rgba(255,255,255,.08);color:var(--mb-color);border-color:rgba(255,255,255,.28);box-shadow:var(--mb-shadow);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}
.mb-variant-glass:hover,.mb-variant-glass:focus-visible{background:rgba(255,255,255,.16);color:var(--mb-hover-color);border-color:var(--mb-hover-border-color);box-shadow:var(--mb-hover-shadow)}
.mb-variant-gradient{background:linear-gradient(135deg,var(--mb-gradient-from),var(--mb-gradient-to));color:var(--mb-color);border-color:transparent;background-size:140% 140%}
.mb-variant-gradient:hover,.mb-variant-gradient:focus-visible{background-position:100% 0;color:var(--mb-hover-color);border-color:transparent}

/* Basis-Animationen */
.mb-anim-lift:hover,.mb-anim-lift:focus-visible{transform:translateY(-3px)}
.mb-anim-grow:hover,.mb-anim-grow:focus-visible{transform:scale(1.04)}
.mb-anim-tilt:hover,.mb-anim-tilt:focus-visible{transform:rotate(-1deg) translateY(-2px)}
.mb-anim-slide:hover,.mb-anim-slide:focus-visible{transform:translateX(4px)}
.mb-anim-glow:hover,.mb-anim-glow:focus-visible{filter:brightness(1.08)}
.mb-anim-press:hover,.mb-anim-press:focus-visible{transform:translateY(2px);box-shadow:0 4px 12px rgba(0,0,0,.16)}
.mb-anim-shadow-push:hover,.mb-anim-shadow-push:focus-visible{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--mb-hover-border-color)}

/* Fill links nach rechts */
.mb-anim-fill::before,
.mb-anim-fill-up::before,
.mb-anim-fill-center::before{
  content:"";position:absolute;inset:0;background:var(--mb-hover-bg);z-index:1;
  transition:transform var(--mb-duration) var(--mb-easing),opacity var(--mb-duration) var(--mb-easing);
}
.mb-anim-fill::before{transform:translateX(-110%)}
.mb-anim-fill:hover::before,.mb-anim-fill:focus-visible::before{transform:translateX(0)}
.mb-anim-fill:hover,.mb-anim-fill:focus-visible{background:var(--mb-bg);color:var(--mb-hover-color)}

/* Fill unten nach oben */
.mb-anim-fill-up::before{transform:translateY(110%)}
.mb-anim-fill-up:hover::before,.mb-anim-fill-up:focus-visible::before{transform:translateY(0)}
.mb-anim-fill-up:hover,.mb-anim-fill-up:focus-visible{background:var(--mb-bg);color:var(--mb-hover-color)}

/* Fill aus der Mitte */
.mb-anim-fill-center::before{transform:scaleX(0);transform-origin:center}
.mb-anim-fill-center:hover::before,.mb-anim-fill-center:focus-visible::before{transform:scaleX(1)}
.mb-anim-fill-center:hover,.mb-anim-fill-center:focus-visible{background:var(--mb-bg);color:var(--mb-hover-color)}

/* Underline */
.mb-anim-underline::after{
  content:"";position:absolute;left:calc(var(--mb-px) * .8);right:calc(var(--mb-px) * .8);bottom:calc(var(--mb-py) * .55);height:2px;
  background:currentColor;transform:scaleX(0);transform-origin:left;z-index:3;
  transition:transform var(--mb-duration) var(--mb-easing);opacity:.9;
}
.mb-anim-underline:hover::after,.mb-anim-underline:focus-visible::after{transform:scaleX(1)}

/* Shine Sweep */
.mb-anim-shine::before{
  content:"";position:absolute;top:-45%;bottom:-45%;width:34%;left:-55%;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--mb-shine),transparent);transform:skewX(-18deg);
  transition:left calc(var(--mb-duration) * 2.1) var(--mb-easing);
}
.mb-anim-shine:hover::before,.mb-anim-shine:focus-visible::before{left:125%}
.mb-anim-shine:hover,.mb-anim-shine:focus-visible{transform:translateY(-2px)}

/* Shimmer Border */
.mb-anim-shimmer::before{
  content:"";position:absolute;inset:-2px;z-index:0;border-radius:inherit;opacity:0;
  background:linear-gradient(120deg,transparent 10%,var(--mb-hover-border-color),var(--mb-shine),var(--mb-hover-border-color),transparent 90%);
  transition:opacity var(--mb-duration) var(--mb-easing);animation:mb-shimmer-rotate 1.8s linear infinite paused;
}
.mb-anim-shimmer::after{
  content:"";position:absolute;inset:var(--mb-border-width);z-index:1;border-radius:calc(var(--mb-radius) - var(--mb-border-width));background:inherit;pointer-events:none;
}
.mb-anim-shimmer>span{z-index:2}
.mb-anim-shimmer:hover::before,.mb-anim-shimmer:focus-visible::before{opacity:1;animation-play-state:running}
@keyframes mb-shimmer-rotate{0%{transform:translateX(-35%)}100%{transform:translateX(35%)}}

/* Pulse */
.mb-anim-pulse:hover,.mb-anim-pulse:focus-visible{animation:mb-button-pulse .75s var(--mb-easing) both}
@keyframes mb-button-pulse{0%{transform:scale(1)}45%{transform:scale(1.045)}100%{transform:scale(1)}}

/* Border Pulse */
.mb-anim-border-pulse::after{
  content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid var(--mb-hover-border-color);opacity:0;z-index:0;
}
.mb-anim-border-pulse:hover::after,.mb-anim-border-pulse:focus-visible::after{animation:mb-border-pulse .75s var(--mb-easing) both}
@keyframes mb-border-pulse{0%{opacity:.75;transform:scale(1)}100%{opacity:0;transform:scale(1.18)}}

/* Arrow Push */
.mb-anim-arrow>span::after{content:"→";display:inline-block;margin-left:.15em;opacity:0;transform:translateX(-.35em);transition:opacity var(--mb-duration) var(--mb-easing),transform var(--mb-duration) var(--mb-easing)}
.mb-anim-arrow:hover>span::after,.mb-anim-arrow:focus-visible>span::after{opacity:1;transform:translateX(.1em)}
.mb-anim-arrow:hover,.mb-anim-arrow:focus-visible{transform:translateX(2px)}

@media (prefers-reduced-motion: reduce){
  .mb-button,.mb-button::before,.mb-button::after,.mb-button>span::after{transition:none!important;animation:none!important;transform:none!important}
}
