.nvc-button, .fluentform .ff-btn.nvc-button {
  --button-background: var(--nvc-ink, #101116);
  --button-text: #fff;
  --button-border: var(--nvc-ink, #101116);
  position: relative;
  isolation: isolate;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  min-block-size: 3rem;
  max-inline-size: 100%;
  padding: 0.875rem 1.25rem;
  border: 1px solid var(--button-border);
  border-radius: var(--nvc-button-radius, 0.625rem);
  background: var(--button-background);
  color: var(--button-text);
  font: inherit;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  overflow: hidden;
  cursor: pointer;
}

.nvc-button::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: -50% auto -50% -100%;
  inline-size: 65%;
  background: linear-gradient(105deg, transparent, currentColor, transparent);
  opacity: 0.15;
  transform: skewX(-15deg);
  pointer-events: none;
}

.nvc-button:is(:hover, :focus-visible) {
  color: var(--button-text);
  text-decoration: none;
}

.nvc-button:is(:hover, :focus-visible)::before {
  animation: nvc-button-halo 650ms ease-out;
}

.nvc-button--white {
  --button-background: #fff;
  --button-text: var(--nvc-ink, #101116);
  --button-border: #fff;
}

.nvc-button--outline-dark {
  --button-background: transparent;
  --button-text: var(--nvc-ink, #101116);
  --button-border: var(--nvc-ink, #101116);
}

.nvc-button--outline-light {
  --button-background: transparent;
  --button-text: #fff;
  --button-border: #fff;
}

.nvc-button > svg {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  flex: 0 0 auto;
  fill: currentColor;
}

.nvc-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

@keyframes nvc-button-halo {
  to { inset-inline-start: 150%; }
}

@media (prefers-reduced-motion: reduce) {
  .nvc-button:is(:hover, :focus-visible)::before { animation: none; }
}
.nvc-root .nvc-button { border-style: solid; }
.nvc-button > :is(span,p) { margin-block: 0; }
.nvc-button > :is(img,svg) { display: block; align-self: center; flex-shrink: 0; }
.nvc-root.nvc-header .nvc-button { min-height:48px; height:48px; padding-block:0; align-items:center; line-height:1.2; }
