/* Haven auth pages: T21 Login, T22 Register, T23 Password Reset (artboards Clay/pages/T21-T23). Scoped to .hvn-page-auth, added by each page's layout handle. */

.hvn-page-auth .page-main {
  max-width: 1140px;
  padding: 48px 40px 64px;
  box-sizing: border-box;
}
.hvn-page-auth .page-title-wrapper {
  margin: 0 0 32px;
  text-align: center;
}
.hvn-page-auth .page-title-wrapper .page-title {
  margin: 0;
  font-family: var(--hvn-font-display);
  font-size: 34px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--hvn-text);
}

/* Blank floats each .block at 48% and clears with pseudo-elements; the grid replaces both. */
.hvn-page-auth .login-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 1060px;
  margin: 0 auto;
}
.hvn-page-auth .login-container::before,
.hvn-page-auth .login-container::after {
  content: none;
}
.hvn-page-auth .login-container .block {
  float: none;
  width: auto;
  margin: 0;
}
.hvn-page-auth .hvn-auth-card {
  box-sizing: border-box;
  padding: 32px;
  background: var(--hvn-surface);
  border: 1px solid var(--hvn-border);
  border-radius: 4px;
}
.hvn-page-auth .hvn-auth-card--quiet {
  background: var(--hvn-bg);
}
.hvn-page-auth .login-container .hvn-auth-card .block-title {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
}
.hvn-page-auth .hvn-auth-card .block-title strong {
  font-family: var(--hvn-font-display);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--hvn-text);
}

.hvn-page-auth .hvn-auth-card .fieldset {
  margin: 0;
}
/* Blank's required-fields note is an empty ::after with a 35px top margin below 768px. */
.hvn-page-auth .hvn-auth-card .fieldset::after {
  content: none;
}
.hvn-page-auth .hvn-auth-card .fieldset > .field {
  margin: 0 0 18px;
}
.hvn-page-auth .hvn-auth-card .fieldset > .field > .label {
  float: none;
  width: auto;
  margin: 0 0 8px;
  padding: 0;
  text-align: left;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--hvn-text-subtle);
}
.hvn-page-auth .hvn-auth-card .fieldset > .field.required > .label::after {
  content: none;
}
.hvn-page-auth .hvn-auth-card .fieldset > .field > .control {
  float: none;
  width: 100%;
}
.hvn-page-auth .hvn-auth-card input.input-text {
  box-sizing: border-box;
  height: auto;
  min-height: 46px;
  padding: 13px 15px;
  font-family: var(--hvn-font-body);
  font-size: 14px;
  color: var(--hvn-text);
  background: var(--hvn-surface);
  border: 1px solid var(--hvn-border-strong);
  border-radius: 4px;
}
.hvn-page-auth .hvn-auth-card select {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 46px;
  padding: 12px 15px;
  font-family: var(--hvn-font-body);
  font-size: 14px;
  color: var(--hvn-text);
  background-color: var(--hvn-surface);
  border: 1px solid var(--hvn-border-strong);
  border-radius: 4px;
}
.hvn-page-auth .hvn-auth-card input.input-text:focus {
  border-color: var(--hvn-accent);
  box-shadow: 0 0 0 2px var(--hvn-focus-ring);
  outline: none;
}
.hvn-page-auth .hvn-auth-card div.mage-error {
  margin-top: 6px;
  font-size: 12px;
  color: var(--hvn-error);
}
.hvn-page-auth .hvn-auth-card input.mage-error {
  border-color: var(--hvn-error);
}

.hvn-page-auth .hvn-auth-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 16px;
  margin: 0 0 22px;
}
.hvn-page-auth .hvn-auth-row .field.choice {
  margin: 0;
}
.hvn-page-auth .hvn-auth-row .field.choice .label {
  font-size: 14px;
  color: var(--hvn-text-muted);
  white-space: nowrap;
}
.hvn-page-auth .hvn-auth-row input[type="checkbox"] {
  accent-color: var(--hvn-accent);
}
.hvn-page-auth .hvn-auth-row input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--hvn-focus-ring-light),
              0 0 0 4px var(--hvn-focus-ring-dark);
}
.hvn-page-auth .hvn-auth-row .action.remind {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  color: var(--hvn-accent-strong);
  text-decoration: none;
}
.hvn-page-auth .hvn-auth-row .action.remind:hover {
  text-decoration: underline;
}

/* Blank indents .fieldset > .actions-toolbar by the 25.8% label column the stacked layout does not have. */
.hvn-page-auth .login-container .fieldset > .actions-toolbar,
.hvn-page-auth .hvn-auth-card .actions-toolbar {
  margin: 0;
  padding: 0;
}
.hvn-page-auth .hvn-auth-card .actions-toolbar::before,
.hvn-page-auth .hvn-auth-card .actions-toolbar::after {
  content: none;
}
.hvn-page-auth .hvn-auth-card .actions-toolbar > .primary {
  float: none;
  display: block;
  width: 100%;
  margin: 0;
}
/* Blank's .action.primary and .login-container button rules outrank the .hvn-btn utilities, so the card buttons are set here. */
.hvn-page-auth .hvn-auth-card .actions-toolbar > .primary .action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 46px;
  margin: 0;
  padding: 12px 32px;
  border-radius: 4px;
  font-family: var(--hvn-font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-decoration: none;
}
.hvn-page-auth .block-customer-login .actions-toolbar > .primary .action.login {
  width: 100%;
  background: var(--hvn-accent);
  border: 1px solid var(--hvn-accent);
  color: var(--hvn-accent-text);
}
.hvn-page-auth .block-customer-login .actions-toolbar > .primary .action.login:hover,
.hvn-page-auth .block-customer-login .actions-toolbar > .primary .action.login:focus {
  background: var(--hvn-accent-hover);
  border-color: var(--hvn-accent-hover);
  color: var(--hvn-accent-text);
}
.hvn-page-auth .block-new-customer .actions-toolbar > .primary .action.create {
  width: auto;
  background: transparent;
  border: 1px solid var(--hvn-border-strong);
  color: var(--hvn-text);
}
.hvn-page-auth .block-new-customer .actions-toolbar > .primary .action.create:hover,
.hvn-page-auth .block-new-customer .actions-toolbar > .primary .action.create:focus {
  background: var(--hvn-accent-tint);
  border-color: var(--hvn-text);
  color: var(--hvn-text);
}
.hvn-page-auth .hvn-auth-card .actions-toolbar > .primary .action:focus-visible,
.hvn-page-auth .hvn-auth-row .action.remind:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--hvn-focus-ring-light),
              0 0 0 4px var(--hvn-focus-ring-dark);
}

.hvn-page-auth .hvn-auth-lead {
  margin: 0 0 16px;
  font-size: 14px;
  color: var(--hvn-text-muted);
}
.hvn-page-auth .hvn-auth-benefits {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.hvn-page-auth .hvn-auth-benefits li {
  margin: 0 0 12px;
  padding-left: 22px;
  position: relative;
  font-size: 14px;
  color: var(--hvn-text-muted);
}
.hvn-page-auth .hvn-auth-benefits li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--hvn-accent);
}

/* Core session messages (wrong password, account locked, confirmation sent) as the artboard's state banners. */
.hvn-page-auth .page.messages {
  max-width: 1060px;
  margin: 0 auto 20px;
}
.hvn-page-auth .page.messages .message {
  margin: 0 0 10px;
  padding: 14px 18px;
  border: 1px solid var(--hvn-warning);
  border-radius: 4px;
  background: var(--hvn-surface);
  color: var(--hvn-text);
  font-size: 14px;
}
.hvn-page-auth .page.messages .message > *:first-child::before {
  display: none;
}
.hvn-page-auth .page.messages .message-error {
  border-color: var(--hvn-error);
}
.hvn-page-auth .page.messages .message-success {
  border-color: var(--hvn-success);
}
.hvn-page-auth .page.messages .message a {
  color: var(--hvn-accent-strong);
  text-decoration: underline;
}

/* T22 Register: one 672px card; the create-account form is the card. */
.hvn-page-register .page-title-wrapper .page-title {
  font-size: 32px;
}
.hvn-page-register .page.messages {
  max-width: 672px;
}
/* Blank sizes .form.create.account at width 50% with a 600px min-width. */
.hvn-page-register .form.create.account.hvn-auth-card {
  width: 100%;
  min-width: 0;
  max-width: 672px;
  margin: 0 auto;
}
.hvn-page-register .form-create-account .fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}
.hvn-page-register .form-create-account .fieldset.create.info {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 12px;
  margin-bottom: 24px;
}
/* multishipping/checkout/register reuses this handle with the address fieldset shown. */
.hvn-page-register .form-create-account .fieldset.address {
  margin-bottom: 24px;
}
.hvn-page-register .form-create-account .fieldset.create.info > * {
  grid-column: 1 / -1;
}
.hvn-page-register .form-create-account .fieldset.create.info > .field-name-firstname,
.hvn-page-register .form-create-account .fieldset.create.info > .field-name-lastname {
  grid-column: auto;
}
.hvn-page-register .form-create-account .fieldset::before,
.hvn-page-register .form-create-account .fieldset::after,
.hvn-page-register .form-create-account .fieldset > .legend + br {
  content: none;
  display: none;
}
.hvn-page-register .form-create-account .fieldset > .legend {
  float: none;
  width: auto;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  font-family: var(--hvn-font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hvn-text-subtle);
}
.hvn-page-register .form-create-account .fieldset > .field.choice,
.hvn-page-reset .form.password.reset .fieldset > .field.choice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
}
.hvn-page-register .form-create-account .fieldset > .field.choice::before,
.hvn-page-reset .form.password.reset .fieldset > .field.choice::before {
  content: none;
}
.hvn-page-register .form-create-account .fieldset > .field.choice > .label,
.hvn-page-reset .form.password.reset .fieldset > .field.choice > .label {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  color: var(--hvn-text-muted);
}
.hvn-page-register .form-create-account .field.choice input[type="checkbox"],
.hvn-page-reset .form.password.reset .field.choice input[type="checkbox"] {
  margin: 0;
  accent-color: var(--hvn-accent);
}
.hvn-page-register .form-create-account .field.choice input[type="checkbox"]:focus-visible,
.hvn-page-reset .form.password.reset .field.choice input[type="checkbox"]:focus-visible,
.hvn-page-reset .hvn-auth-back .action.back:focus-visible,
.hvn-page-register .form-create-account .field-tooltip-action:focus-visible,
.hvn-page-register .hvn-auth-switch .action.back:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--hvn-focus-ring-light),
              0 0 0 4px var(--hvn-focus-ring-dark);
}
/* Blank positions the assistance tooltip absolutely at the field's top right. */
.hvn-page-register .form-create-account .field.choice .field-tooltip {
  position: relative;
  top: auto;
  right: auto;
  flex: 0 0 auto;
  margin: 0;
}
.hvn-page-register .form-create-account .field-tooltip-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--hvn-text-muted);
}
.hvn-page-register .form-create-account .field-tooltip .field-tooltip-content {
  font-size: 13px;
  color: var(--hvn-text);
  background: var(--hvn-surface);
  border: 1px solid var(--hvn-border-strong);
  border-radius: 4px;
}

/* Strength meter: core toggles password-none/weak/medium/strong/very-strong on the container. */
.hvn-page-register .form-create-account .password-strength-meter,
.hvn-page-reset .form.password.reset .password-strength-meter {
  display: flex;
  align-items: center;
  gap: 10px;
  position: static;
  z-index: auto;
  height: auto;
  margin-top: 8px;
  padding: 0;
  line-height: 1.4;
  background: none;
  font-size: 12px;
  color: var(--hvn-text-subtle);
}
.hvn-page-register .form-create-account .password-strength-meter::before,
.hvn-page-reset .form.password.reset .password-strength-meter::before {
  content: "";
  position: static;
  z-index: auto;
  flex: 1 1 auto;
  width: auto;
  height: 6px;
  border-radius: 99px;
  background: linear-gradient(var(--hvn-meter-fill, var(--hvn-border)), var(--hvn-meter-fill, var(--hvn-border))) left center / var(--hvn-meter, 0%) 100% no-repeat,
              var(--hvn-border);
}
.hvn-page-register #password-strength-meter-container.password-weak,
.hvn-page-reset #password-strength-meter-container.password-weak {
  --hvn-meter: 25%;
  --hvn-meter-fill: var(--hvn-error);
}
.hvn-page-register #password-strength-meter-container.password-medium,
.hvn-page-reset #password-strength-meter-container.password-medium {
  --hvn-meter: 50%;
  --hvn-meter-fill: var(--hvn-warning);
}
.hvn-page-register #password-strength-meter-container.password-strong,
.hvn-page-reset #password-strength-meter-container.password-strong {
  --hvn-meter: 75%;
  --hvn-meter-fill: var(--hvn-accent);
}
.hvn-page-register #password-strength-meter-container.password-very-strong,
.hvn-page-reset #password-strength-meter-container.password-very-strong {
  --hvn-meter: 100%;
  --hvn-meter-fill: var(--hvn-accent);
}

/* Blank indents .column:not(.sidebar-main) form .actions-toolbar (0,3,1) by 25.8%. */
.hvn-page-register .form.create.account .actions-toolbar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin: 8px 0 0;
}
.hvn-page-register .form-create-account .actions-toolbar > .primary {
  width: auto;
}
.hvn-page-register .form-create-account .actions-toolbar > .primary .action.submit {
  width: auto;
  background: var(--hvn-accent);
  border: 1px solid var(--hvn-accent);
  color: var(--hvn-accent-text);
}
.hvn-page-register .form-create-account .actions-toolbar > .primary .action.submit:hover,
.hvn-page-register .form-create-account .actions-toolbar > .primary .action.submit:focus {
  background: var(--hvn-accent-hover);
  border-color: var(--hvn-accent-hover);
  color: var(--hvn-accent-text);
}
.hvn-page-register .form-create-account .actions-toolbar > .secondary.hvn-auth-switch {
  float: none;
  margin: 0;
  text-align: left;
  font-size: 13px;
  color: var(--hvn-text-muted);
}
/* Blank's mobile .actions-toolbar > .secondary .action sets width: 100%. */
.hvn-page-register .form-create-account .actions-toolbar > .hvn-auth-switch .action.back {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-height: 44px;
  margin: 0;
  color: var(--hvn-accent-strong);
  text-decoration: underline;
}

/* T23 Password Reset: forgotpassword and createpassword each render one 432px card; the h1 is in the card. */
.hvn-page-reset .page.messages {
  max-width: 432px;
}
.hvn-page-reset .hvn-auth-reset {
  max-width: 432px;
  margin: 0 auto;
}
.hvn-page-reset .hvn-auth-title {
  margin: 0 0 12px;
  font-family: var(--hvn-font-display);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--hvn-text);
}
.hvn-page-reset .hvn-auth-title--sub {
  font-size: 19px;
  margin-bottom: 20px;
}
.hvn-page-reset .hvn-auth-reset .hvn-auth-lead {
  margin: 0 0 20px;
  font-size: 13.5px;
  line-height: 1.6;
}
/* Blank sizes .form.password.forget and .form.password.reset at width 50% with a 600px min-width. */
.hvn-page-reset .hvn-auth-reset .form.password {
  width: 100%;
  min-width: 0;
}
.hvn-page-reset .hvn-auth-reset .fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}
/* Blank indents .column:not(.sidebar-main) form .actions-toolbar (0,3,1) by 25.8%. */
.hvn-page-reset .hvn-auth-reset .form.password .actions-toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin: 4px 0 0;
}
.hvn-page-reset .hvn-auth-reset .form.password .actions-toolbar::before,
.hvn-page-reset .hvn-auth-reset .form.password .actions-toolbar::after {
  content: none;
}
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .primary {
  float: none;
  width: 100%;
  margin: 0;
}
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .primary .action.submit {
  width: 100%;
  background: var(--hvn-accent);
  border: 1px solid var(--hvn-accent);
  color: var(--hvn-accent-text);
}
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .primary .action.submit:hover,
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .primary .action.submit:focus {
  background: var(--hvn-accent-hover);
  border-color: var(--hvn-accent-hover);
  color: var(--hvn-accent-text);
}
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .secondary.hvn-auth-back {
  float: none;
  margin: 0;
  text-align: center;
}
/* Blank's mobile .actions-toolbar > .secondary .action sets width: 100%. */
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .hvn-auth-back .action.back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  min-height: 44px;
  margin: 0;
  font-size: 13px;
  color: var(--hvn-accent-strong);
  text-decoration: none;
}
.hvn-page-reset .hvn-auth-reset .actions-toolbar > .hvn-auth-back .action.back:hover {
  text-decoration: underline;
}

@media (max-width: 767px) {
  .hvn-page-auth .page-main {
    padding: 32px 16px 48px;
  }
  .hvn-page-auth .page-title-wrapper .page-title {
    font-size: 28px;
  }
  .hvn-page-auth .login-container {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .hvn-page-auth .hvn-auth-card {
    padding: 24px 20px;
  }
  .hvn-page-auth .block-new-customer .actions-toolbar > .primary .action.create {
    width: 100%;
  }
  .hvn-page-register .form.create.account .actions-toolbar {
    align-items: stretch;
  }
  .hvn-page-register .form-create-account .actions-toolbar > .secondary.hvn-auth-switch {
    text-align: center;
  }
  .hvn-page-register .form-create-account .actions-toolbar > .primary .action.submit {
    width: 100%;
  }
}
@media (max-width: 479px) {
  .hvn-page-register .form-create-account .fieldset.create.info {
    grid-template-columns: minmax(0, 1fr);
  }
  .hvn-page-register .form-create-account .fieldset.create.info > .field-name-firstname,
  .hvn-page-register .form-create-account .fieldset.create.info > .field-name-lastname {
    grid-column: 1 / -1;
  }
}
