/* Font */
.ds-font {
  /* Font Family */
}
.ds-font-heading {
  font-family: var(--ds-fontFamily-heading);
}
.ds-font-body {
  font-family: var(--ds-fontFamily-body);
}
.ds-font {
  /* Font Weights */
}
.ds-font-regular {
  font-weight: var(--ds-fontWeight-regular);
}
.ds-font-semibold {
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-font-semibold-plus {
  font-weight: var(--ds-fontWeight-semiboldPlus);
}
.ds-font-bold {
  font-weight: var(--ds-fontWeight-bold);
}

/* Letter Spacing */
.ds-tracking-xs {
  letter-spacing: var(--ds-letterSpacing-xTight);
}
.ds-tracking-sm {
  letter-spacing: var(--ds-letterSpacing-tight);
}
.ds-tracking-md {
  letter-spacing: var(--ds-letterSpacing-normal);
}
.ds-tracking-lg {
  letter-spacing: var(--ds-letterSpacing-wide);
}
.ds-tracking-xl {
  letter-spacing: var(--ds-letterSpacing-xWide);
}

/* Line Height */
.ds-leading-sm {
  line-height: var(--ds-lineHeight-small);
}
.ds-leading-md {
  line-height: var(--ds-lineHeight-medium);
}
.ds-leading-lg {
  line-height: var(--ds-lineHeight-large);
}
.ds-leading-xl {
  line-height: var(--ds-lineHeight-xLarge);
}

/* Font Width */
.ds-width-md {
  font-stretch: var(--ds-fontWidth-normal);
}
.ds-width-sm {
  font-stretch: var(--ds-fontWidth-condense);
}

/* Number Style */
.ds-number-proportional {
  font-variant-numeric: var(--ds-number-style);
}

/* Paragraph */
.ds-paragraph-16 {
  margin-bottom: var(--ds-marginBottom, 16px);
}
.ds-paragraph-20 {
  margin-bottom: var(--ds-marginBottom, 20px);
}

/* Paragraph Width */
.ds-paragraph-width-optimal {
  max-width: var(--ds-paragraphWidth-optimal);
}

/* List */
.ds-list-spacing {
  gap: 4px;
}

/* Text colors */
.ds-text-color-default {
  color: var(--ds-textColor-default);
}

/* Text Sizes */
.ds-text {
  /* Regular Text Sizes */
}
.ds-text-regular-2xl {
  font-size: var(--ds-fontSize-22);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text-regular-xl {
  font-size: var(--ds-fontSize-20);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text-regular-lg {
  font-size: var(--ds-fontSize-18);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text-regular-md {
  font-size: var(--ds-fontSize-16);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text-regular-sm {
  font-size: var(--ds-fontSize-14);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text-regular-xs {
  font-size: var(--ds-fontSize-12);
  font-weight: var(--ds-fontWeight-regular);
}
.ds-text {
  /* Semibold Text Sizes */
}
.ds-text-semibold-2xl {
  font-size: var(--ds-fontSize-22);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text-semibold-xl {
  font-size: var(--ds-fontSize-20);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text-semibold-lg {
  font-size: var(--ds-fontSize-18);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text-semibold-md {
  font-size: var(--ds-fontSize-16);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text-semibold-sm {
  font-size: var(--ds-fontSize-14);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text-semibold-xs {
  font-size: var(--ds-fontSize-12);
  font-weight: var(--ds-fontWeight-semibold);
}
.ds-text {
  /* Bold Text Sizes */
}
.ds-text-bold-2xl {
  font-size: var(--ds-fontSize-22);
  font-weight: var(--ds-fontWeight-bold);
}
.ds-text-bold-xl {
  font-size: var(--ds-fontSize-20);
  font-weight: var(--ds-fontWeight-bold);
}
.ds-text-bold-lg {
  font-size: var(--ds-fontSize-18);
  font-weight: var(--ds-fontWeight-bold);
}
.ds-text-bold-md {
  font-size: var(--ds-fontSize-16);
  font-weight: var(--ds-fontWeight-bold);
}
.ds-text-bold-sm {
  font-size: var(--ds-fontSize-14);
  font-weight: var(--ds-fontWeight-bold);
}
.ds-text-bold-xs {
  font-size: var(--ds-fontSize-12);
  font-weight: var(--ds-fontWeight-bold);
}

.ds-spinner__Rso0Na {
  display: inline-block;
}
.ds-spinner__Rso0Na:has(.ds-spinner__Rso0Na__text) {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--spinner-size) / 2);
}
.ds-spinner__Rso0Na {
  /* Size */
}
.ds-spinner__Rso0Na--small {
  padding: 1.5px;
}
.ds-spinner__Rso0Na--medium {
  padding: 3px;
}
.ds-spinner__Rso0Na--large {
  padding: 3px;
}
.ds-spinner__Rso0Na--xLarge {
  padding: 5.5px;
}
.ds-spinner__Rso0Na--2xLarge {
  padding: 5.5px;
}
.ds-spinner__Rso0Na--custom {
  padding: calc(var(--spinner-size) / 8);
}
.ds-spinner__Rso0Na {
  /* Position */
}
.ds-spinner__Rso0Na--below {
  flex-direction: column;
  align-items: center;
}
.ds-spinner__Rso0Na--right {
  flex-direction: row;
  align-items: center;
}
.ds-spinner__Rso0Na__spinner {
  width: var(--spinner-size, 24px);
  height: var(--spinner-size, 24px);
  border-radius: 50%;
  border: calc(var(--spinner-size, 24px) / 6) solid var(--ds-borderColor-disabled-onLight);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ds-spinner__Rso0Na__text {
  color: var(--ds-textColor-default);
  font-family: var(--ds-fontFamily-body);
}
.ds-spinner__Rso0Na__text--white {
  color: var(--ds-textColor-white);
}
.ds-spinner__Rso0Na__segment {
  display: block;
  position: absolute;
  width: var(--spinner-size, 24px);
  height: var(--spinner-size, 24px);
  border: calc(var(--spinner-size, 24px) / 6) solid var(--spinner-color, #005a94);
  border-radius: 50%;
  animation: ds-spinner-rotate 1.1s cubic-bezier(0.7, 0.15, 0.3, 0.8) infinite;
  border-color: var(--spinner-color, #005a94) var(--spinner-border-color) var(--spinner-border-color) var(--spinner-border-color);
}
.ds-spinner__Rso0Na__segment--1 {
  animation-delay: -0.3s;
}
.ds-spinner__Rso0Na__segment--2 {
  animation-delay: -0.2s;
}
.ds-spinner__Rso0Na__segment--3 {
  animation-delay: -0.1s;
}

@keyframes ds-spinner-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
  .ds-spinner__Rso0Na__segment {
    animation-duration: 2.2s; /* Double the original duration (slower) */
    animation-timing-function: linear; /* More predictable motion */
  }
  .ds-spinner__Rso0Na__segment--1 {
    animation-delay: -0.6s;
  }
  .ds-spinner__Rso0Na__segment--2 {
    animation-delay: -0.4s;
  }
  .ds-spinner__Rso0Na__segment--3 {
    animation-delay: -0.2s;
  }
}