/* ==========================================================================
    Component Styles Index
    ========================================================================== */
/*
  * 1. Global Header
  * 2. Main card
  * 3. Support Info
  * 4. Link
  * 5. Buttons
  * 6. Form
  * 7. Input
  * 8. Input error
  * 9. Alert
 */
/* ==========================================================================
    1. Global Header
    ========================================================================== */
:root {
  --global-header-bg-color: #181e35;
  --global-header-padding-block: var(--sds-core-space-600);
  --global-header-link-color: var(--yellow-400600, #facc15);
  --global-header-link-font-size: var(---p-small-font-size, 16px);
  --global-header-icon-size: 24px;
}
.ns-global-header {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--sds-core-space-600);
  gap: var(--sds-core-space-600);
  margin-block: var(--sds-core-space-600);
}
.ns-global-header__logo-wrapper a {
  display: inline-block;
}
@media (max-width: 639.98px) {
  .ns-global-header__logo {
    max-width: 98px;
  }
}
@media (min-width: 640px) {
  .ns-global-header {
    gap: var(--sds-core-space-1000);
    margin-block: var(--sds-core-space-1000);
  }
}
/* ==========================================================================
    2. Main card
    ========================================================================== */
.ns-main-card {
  padding-block: 2rem; /* 32px */
  padding-inline: 1.5rem; /* 24px */
  align-items: flex-start;
  gap: var(--sds-core-space-1000);
  border-radius: 0 24px 24px 24px;
  background: #f3f4f6;
}
.ns-main-card__header {
  display: grid;
  grid-template-columns: 1fr;
  grid-row-gap: var(--sds-core-space-400);
  row-gap: var(--sds-core-space-400);
}
.ns-main-card__content-wrapper,
.ns-main-card__image-wrapper {
  display: flex;
  justify-content: center;
}
.ns-main-card__content-inner {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr;
  grid-row-gap: var(--sds-core-space-300);
  row-gap: var(--sds-core-space-300);
}
@media (max-width: 1000.98px) {
    .ns-main-card__image-wrapper img {
      display: none;
    }
}
@media (min-width: 1000px) {
  .ns-main-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-content: space-between;
    padding-block: var(--sds-core-space-1600);
    padding-inline: var(--sds-core-space-1000);
    border-radius: 0 40px 40px 40px;
  }

  .ns-main-card__content-inner {
    max-width: 31.25rem; /* 500px */
  }
}
/* ==========================================================================
    3. Support Info
    ========================================================================== */
.ns-support-info {
  margin-block: var(--sds-core-space-1000);
}
@media (max-width: 1000.98px) {
    .ns-support-info__image-container img {
      display: none;
    }
}
@media (min-width: 1000px) {
  .ns-support-info {
    display: grid;
    grid-template-columns: minmax(auto, 250px) 1fr;
    align-items: center;
    grid-gap: var(--sds-core-space-1200);
    gap: var(--sds-core-space-1200); /* TODO: Replace with gap-token when available */
  }
}
.ns-support-info__title {
  color: var(--sds-core-color-night-950);

  font-size: 18px;

  font-size: var(---p-medium-font-size, 18px);
  font-style: normal;
  font-weight: 400;
  line-height: 24px;
  line-height: var(---p-medium-line-height, 24px);
}
.ns-support-info__contact-list {
  display: grid;
  grid-gap: var(--sds-core-space-400);
  gap: var(--sds-core-space-400);
  list-style: none;
  padding: 0;
  margin-block: var(--sds-core-space-400) 0;
}
/* ==========================================================================
    4. Link
    ========================================================================== */
.ns-link {
  display: inline-flex;
  align-items: center;
  gap: var(--sds-core-space-200);
  color: #1e40af;
  color: var(--blue-800200, #1e40af);
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  line-height: normal;
  max-width: -moz-fit-content;
  max-width: fit-content;
}
/* ==========================================================================
    5. Buttons
    ========================================================================== */
.ns-button {
  border: 0 !important;
  outline: 4px solid transparent;

  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--sds-sem-space-gap-md);

  font-family: var(--sds-core-font-family-sans);
  font-weight: 700;
  font-size: var(--sds-sem-font-size-paragraph-base);
  line-height: var(--btn-size-lg-line-height);

  white-space: nowrap;
  color: var(--sds-sem-color-surface-default);
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;

  cursor: pointer;
}
.ns-button--size-lg {
  border-radius: 1.5rem;
  padding-block: 12px;
  padding-block: var(--sds-sem-space-inset-lg, 12px);
  padding-inline: 32px;
  padding-inline: var(--sds-core-space-800, 32px);
  gap: 8px;
  gap: var(--sds-sem-space-gap-md, 8px);

  font-size: var(--sds-sem-font-size-paragraph-base);
  line-height: 32px;
  line-height: var(--btn-size-lg-line-height, 32px);
}
.ns-button--version-default {
  background: var(--color-brand-shade-night-950);
}
.ns-button--version-default:active {
    background-color: var(--color-brand-shade-night-800);
    outline-color: var(--color-brand-shade-night-950);
  }
.ns-button--version-default:hover,.ns-button--version-default:focus-visible {
    background-color: var(--color-brand-shade-night-900);
    outline-color: var(--color-brand-shade-night-200);
  }
/* add button disabled styles */
.ns-button:disabled {
  background: var(--color-brand-shade-night-400);
  cursor: not-allowed;
}
.ns-button:disabled:active,.ns-button:disabled:hover,.ns-button:disabled:focus-visible {
    outline-color: transparent;
    background-color: var(--color-brand-shade-night-400);
  }
/* ==========================================================================
    6. Form
    ========================================================================== */
.ns-form {
  display: grid;
  grid-template-columns: 1fr;
  grid-row-gap: var(--sds-core-space-400);
  row-gap: var(--sds-core-space-400);
}
/* ==========================================================================
    7. Input
    ========================================================================== */
.ns-form-group {
  margin-block-end: var(--sds-core-space-400);
}
form .ns-form-group {
  margin-block-end: 0;
}
.ns-input-label {
  display: block;
  margin-block-end: var(--sds-core-space-200);
  font-size: var(--sds-sem-font-size-paragraph-base);
  font-weight: 700;
  line-height: 1;
}
.ns-input__password-wrapper {
  position: relative;
}
.ns-input__password-wrapper [type="text"],.ns-input__password-wrapper [type="password"] {
    padding-right: var(--sds-core-space-1000);
  }
.ns-input__password-wrapper button {
    display: flex;
    align-items: center;
  }
:is(.ns-input__password-wrapper [type="text"] + button) .ns-input__password-icon--visible {
      display: inline-flex;
    }
:is(.ns-input__password-wrapper [type="text"] + button) .ns-input__password-icon--hidden {
      display: none;
    }
.ns-input__password-wrapper [type="password"] + button {
    color: #a3a5ae;
  }
:is(.ns-input__password-wrapper [type="password"] + button) .ns-input__password-icon--visible {
      display: none;
    }
:is(.ns-input__password-wrapper [type="password"] + button) .ns-input__password-icon--hidden {
      display: inline-flex;
    }
/* Password toggle button */
.ns-input__password-wrapper button {
    position: absolute;
    top: 50%;
    padding: 0.3rem;
    right: var(--sds-core-space-200);
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    font-size: 24px;
  }
/*  hide default eye password icon */
input::-ms-reveal {
  display: none;
}
input {
  display: flex;
  width: 100%;
  height: 48px;
  align-items: center;
  flex-shrink: 0;
  border-radius: var(--sds-sem-border-radius-base);
  border: var(--sds-core-border-width-25) solid
    var(--sds-sem-color-border-input);
  background: var(--sds-sem-color-background-default);

  padding-inline: var(--sds-core-space-200);
  font-family: var(--sds-core-font-family-sans);
  font-size: 18px;
  font-size: var(--font-font-size-md, 18px);
  color: var(--sds-core-color-night-950);
  outline: var(--sds-core-space-100) solid transparent;
}
:is(input,select,textarea)::hover {
    border-color: rgb(144 161 185);
    outline-color: var(--color-brand-shade-night-100);
  }
:is(input,select,textarea)::-moz-placeholder {
    color: rgb(144 161 185);
  }
:is(input,select,textarea)::placeholder {
    color: rgb(144 161 185);
  }
:is(input,select,textarea):disabled {
    background-color: rgb(202 213 226);
    border-color: rgb(202 213 226);
    outline-color: transparent;
  }
:is(input,select,textarea):focus {
    border-color: rgb(98 116 142);
    outline-color: var(--color-brand-shade-night-200);
  }
.input-error {
  border: 1px solid var(--color-red-200);
  background-color: var(--color-red-50);
}
.input-error:hover {
    outline-color: var(--color-red-100);
  }
.input-error:focus {
    border-color: var(--color-red-500);
    outline-color: var(--color-red-200);
  }
/* ==========================================================================
    8. Input error
    ========================================================================== */
.ns-input-error-message {
  display: none;
  margin-block-start: var(--sds-core-space-200);
  gap: var(--sds-core-space-200);
  color: var(--sds-core-color-gray-700);
  font-size: var(--sds-sem-font-size-paragraph-base);
}
/* ==========================================================================
    9. Alert
    ========================================================================== */
.ns-alert {
  display: flex;
  align-items: flex-start;
}
.ns-alert--error,
.ns-alert--success {
  gap: var(--sds-core-space-200);
  border-radius: 6px;
  border-left: 4px solid transparent;
}
.ns-alert__icon-wrapper {
  flex-shrink: 0;
}
.ns-alert--error {
  background: #fcedec;
  border-color: #e7000b;
  padding-inline: var(--sds-core-space-300) var(--sds-core-space-600);
  padding-block: var(--sds-core-space-400);
}
/* ==========================================================================
    10. Password strength meter
    ========================================================================== */
.ns-password-strength-meter__wrapper {
  height: 10px;
  width: 100%;
  background: #ddd;
  margin-bottom: 10px;
  position: relative;
  border-radius: 10px;
}
.ns-password-strength-meter__bar {
  height: 100%;
  width: 0;
  transition: width 0.3s;
  border-radius: 10px;
}
.ns-password-strength-meter__text {
  font-weight: bold;
}
.ns-password-strength-meter__error {
  margin-block-end: var(--sds-sem-space-inset-xl);
}
