.motion-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  min-height: 47px;
  padding: var(--space-3) var(--space-4);
  border: 0;
  border-radius: 40px;
  background: var(--blue);
  color: #fff;
  font-family: var(--sora);
  font-size: var(--text-btn);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 160ms ease;
}

.motion-btn:hover { background: #04588a; }

.motion-btn:has(.motion-btn-stretch) {
  position: relative;
  isolation: isolate;
  background-color: transparent;
}

.motion-btn:has(.motion-btn-stretch):hover { background-color: transparent; }

.motion-btn-stretch {
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: var(--blue);
  transform-origin: left center;
  pointer-events: none;
  transition: background-color 160ms ease;
}

.motion-btn:hover .motion-btn-stretch,
.motion-btn:focus-visible .motion-btn-stretch { background: #04588a; }

.motion-btn:has(.motion-btn-stretch):focus-visible { outline: none; }

.motion-btn:focus-visible .motion-btn-stretch {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.canvas-mast .motion-btn:focus-visible .motion-btn-stretch { outline-color: #fff; }

.motion-btn-arrow {
  display: flex;
  flex: none;
  width: 32px;
  height: 32px;
}

.motion-btn-arrow img {
  width: 32px;
  height: 32px;
}

.motion-btn img {
  flex: none;
  width: 32px;
  height: 32px;
}

.motion-btn-sm {
  font-family: var(--sans);
  font-weight: 500;
  line-height: 1.3;
}

.motion-btn-sm img {
  width: 24px;
  height: 24px;
}

.stage.is-reduced .motion-btn,
.stage.is-reduced .motion-btn-stretch { transition: none; }

.btn-blue,
.btn-date {
  --btn-fill: var(--blue);
  --btn-fill-hover: #04588a;
}

.btn-navy {
  --btn-fill: var(--navy);
  --btn-fill-hover: #1f1a4a;
}

.btn:has(.motion-btn-stretch) {
  position: relative;
  isolation: isolate;
  background-color: transparent;
}

.btn:has(.motion-btn-stretch):hover,
.btn:has(.motion-btn-stretch):focus-visible {
  background-color: transparent;
}

.btn .motion-btn-stretch {
  background: var(--btn-fill, var(--blue));
}

.btn:hover .motion-btn-stretch,
.btn:focus-visible .motion-btn-stretch,
.card[data-motion="tactile"][data-state="hover"] .btn .motion-btn-stretch,
.card[data-motion="tactile"][data-state="press"] .btn .motion-btn-stretch {
  background: var(--btn-fill-hover, #04588a);
}

.btn:has(.motion-btn-stretch):focus-visible { outline: none; }

.btn:focus-visible .motion-btn-stretch {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.mast .btn:focus-visible .motion-btn-stretch,
.date .btn:focus-visible .motion-btn-stretch {
  outline-color: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .btn .motion-btn-stretch { transition: none; }
}
