/**
 * @file
 * Styling for core user routes (login, register, reset password).
 */

.ep-auth-page {
  padding-block: clamp(2rem, 5vw, 4rem);
}

/* Hidden until Drupal behaviors attach (see ep-auth-page-ready.js). */
.ep-auth-page.ep-auth-page--ready .ep-auth-page__card {
  opacity: 1;
  visibility: visible;
}

#main.ep-auth-page {
  background-color: var(--ep-color-bg-page) !important;
}

/* #main grows via flex; keep the auth card content-height, not viewport-tall. */
.ep-auth-page > .row {
  align-items: flex-start;
}

.ep-auth-page__main {
  flex: 0 1 100%;
  max-width: 100%;
  align-self: flex-start;
}

main .section.ep-auth-page__card,
section.section.ep-auth-page__card {
  background-color: #ffffff !important;
  border-radius: 0;
  box-shadow: 0 2px 16px var(--ep-color-shadow-light);
  border: var(--ep-button-border-width, 4px) solid var(--ep-color-text-primary);
}

main .section.ep-auth-page__card:has(.ep-billing-signup-page),
section.section.ep-auth-page__card:has(.ep-billing-signup-page) {
  border-width: var(--ep-billing-signup-box-border-width) !important;
  border-style: solid !important;
  border-color: var(--ep-color-text-primary) !important;
}

.ep-auth-page__card {
  max-width: min(var(--ep-auth-page-card-max-width), 100%);
  margin-inline: auto;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  height: fit-content;
  align-self: flex-start;
}

/* ========================================================================
   Signup flow — fixed card shell (same size and position on every step)
   ======================================================================== */
:root {
  --ep-billing-signup-card-max-width: 62rem;
  --ep-billing-signup-card-min-height: 40rem;
  --ep-billing-signup-create-form-card-height: 46rem;
  --ep-billing-signup-card-padding-block: clamp(1.5rem, 3vw, 1.75rem);
  --ep-billing-signup-card-padding-inline: clamp(1.25rem, 2.5vw, 1.75rem);
  --ep-billing-signup-plan-card-width: calc((var(--ep-billing-signup-card-max-width) - 2 * var(--ep-spacing-md, 1rem)) / 3);
  --ep-billing-signup-box-border-width: var(--ep-button-border-width, 4px);
  --ep-billing-signup-form-label-column: 12rem;
  --ep-billing-signup-form-grid-columns: var(--ep-billing-signup-form-label-column) minmax(0, 1fr);
  --ep-billing-signup-form-column-gap: var(--ep-spacing-md, 1rem);
  --ep-billing-signup-submit-pending-border: var(--ep-color-input-border, #e2dbd1);
  --ep-billing-signup-submit-pending-text: var(--ep-color-input-border, #e2dbd1);
  --ep-billing-signup-form-card-padding-block: clamp(2.75rem, 6vw, 3.5rem);
  --ep-billing-signup-form-password-feedback-font-size: 0.6875rem;
  --ep-billing-signup-check-email-content-max-width: 32rem;
  --ep-billing-signup-check-email-content-padding-inline: clamp(2.5rem, 8vw, 5rem);
  --ep-auth-login-card-padding-bottom: clamp(0.875rem, 2.5vw, 1.25rem);
}

.ep-auth-page__card:has(.ep-billing-signup-page) {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: min(var(--ep-billing-signup-card-max-width), 100%) !important;
  min-height: var(--ep-billing-signup-card-min-height);
  height: var(--ep-billing-signup-card-min-height);
  padding: var(--ep-billing-signup-card-padding-block) var(--ep-billing-signup-card-padding-inline);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  border: var(--ep-billing-signup-box-border-width) solid var(--ep-color-text-primary);
}

.ep-auth-page__card:has(.ep-billing-signup-page) .ep-billing-signup-page {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
}

/* Stretch Drupal wrappers so signup content can fill the fixed card height. */
.ep-auth-page__card:has(.ep-billing-signup-page) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page) > .block-system-main-block {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.ep-auth-page__card:has(.ep-billing-signup-page) .block-system-main-block > .content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.ep-auth-page__card:has(.ep-billing-signup-page--landing) {
  --ep-billing-signup-card-padding-inline: clamp(3rem, 12vw, 7rem);
  height: fit-content !important;
  min-height: 0 !important;
  overflow-y: visible;
  padding: var(--ep-billing-signup-card-padding-block) var(--ep-billing-signup-card-padding-inline) var(--ep-spacing-sm, 0.5rem) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--landing) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--landing) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--landing) .block-system-main-block > .content {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--check-email) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
}

.ep-auth-page__card:has(.ep-billing-signup-page--check-email) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--check-email) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--check-email) .block-system-main-block > .content {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--welcome) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--welcome) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--welcome) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--welcome) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--welcome) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--welcome {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-billing-signup-page--welcome .ep-billing-signup-page__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

.ep-billing-signup-page--welcome .ep-billing-signup-page__primary {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 34rem;
}

/* Onboarding profile (/signup/onboarding/profile) — natural card height. */
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--onboarding-profile {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) form.ep-user-account-profile-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) form.ep-user-account-profile-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile) form.ep-user-account-profile-form > .js-form-wrapper.form-actions {
  margin-top: var(--ep-spacing-md, 1rem) !important;
}

/* Onboarding branding (/signup/onboarding/branding) — natural card height. */
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--onboarding-branding {
  flex: 0 0 auto !important;
  min-height: auto !important;
  text-align: center;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) form.ep-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) form.ep-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding) form.ep-form > .js-form-wrapper.form-actions {
  margin-top: var(--ep-spacing-md, 1rem) !important;
}

/* Onboarding preferences (/signup/onboarding/preferences) — natural card height. */
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--onboarding-preferences {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) form.ep-billing-signup-onboarding-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) form.ep-billing-signup-onboarding-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences) form.ep-billing-signup-onboarding-form > .js-form-wrapper.form-actions {
  margin-top: var(--ep-spacing-md, 1rem) !important;
}

/* Onboarding plan (/signup/onboarding/plan) — natural card height. */
.ep-auth-page__card:has(.ep-billing-signup-page--plan) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--plan) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--plan) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--plan) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--plan) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--plan {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--plan) form.ep-billing-signup-plan-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--plan) form.ep-billing-signup-plan-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--plan) form.ep-billing-signup-plan-form > .js-form-wrapper.form-actions {
  margin-top: var(--ep-spacing-md, 1rem) !important;
}

/* Onboarding payment (/signup/onboarding/payment) — natural card height. */
.ep-auth-page__card:has(.ep-billing-signup-page--payment) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--payment) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--payment) > .block-system-main-block,
.ep-auth-page__card:has(.ep-billing-signup-page--payment) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--payment) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--payment {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--payment) form.ep-billing-signup-payment-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--payment) form.ep-billing-signup-payment-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--payment) form.ep-billing-signup-payment-form > .js-form-wrapper.form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--payment) form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__actions {
  margin-top: var(--ep-spacing-md, 1rem) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) {
  min-height: var(--ep-billing-signup-create-form-card-height);
  height: var(--ep-billing-signup-create-form-card-height);
  overflow-y: visible;
  padding: var(--ep-billing-signup-card-padding-block) var(--ep-billing-signup-card-padding-inline) var(--ep-spacing-sm, 0.5rem) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-billing-signup-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-billing-signup-login-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-billing-signup-onboarding-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-billing-signup-plan-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-billing-signup-payment-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-user-account-profile-form,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-site-branding-form {
  flex: 1 1 auto;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0;
}

.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page) form.ep-form > .js-form-wrapper.form-actions {
  margin-top: auto !important;
}

/* Create account — align content to top of the fixed-height card. */
.ep-auth-page__card:has(.ep-billing-signup-page--form) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--form) > .block-system-main-block {
  justify-content: flex-start !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--form) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: flex-start !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) form.ep-form.ep-billing-signup-form,
.ep-auth-page__card:has(.ep-billing-signup-page--form) form.ep-billing-signup-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) form.ep-form > .form-actions,
.ep-auth-page__card:has(.ep-billing-signup-page--form) form.ep-form > .js-form-wrapper.form-actions {
  margin-top: var(--ep-spacing-sm, 0.5rem) !important;
  margin-bottom: 0 !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) form.ep-billing-signup-form .ep-billing-signup-form__terms-row {
  margin-bottom: 0 !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--form) .ep-billing-signup-page__footer-links {
  margin-top: 0.5rem !important;
  margin-bottom: 0 !important;
}

/* Team / planning partner invitation registration use in-card titles. */
.ep-auth-page__card:has(.ep-team-invitation-registration-page) .block-page-title-block,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) .block-page-title-block {
  display: none !important;
}

/* Shorter form than org-owner signup — fit the card to content, not 46rem. */
.ep-auth-page__card:has(.ep-team-invitation-registration-page),
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) {
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-team-invitation-registration-page) .ep-billing-signup-page,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) .ep-billing-signup-page,
.ep-auth-page__card:has(.ep-team-invitation-registration-page) > .block,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) > .block,
.ep-auth-page__card:has(.ep-team-invitation-registration-page) > .block-system-main-block,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) > .block-system-main-block,
.ep-auth-page__card:has(.ep-team-invitation-registration-page) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) .block-system-main-block > .content {
  flex: 0 0 auto !important;
  min-height: auto !important;
  margin-bottom: 0 !important;
}

.ep-auth-page__card:has(.ep-team-invitation-registration-page) form.ep-billing-signup-form > .form-actions,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) form.ep-billing-signup-form > .form-actions,
.ep-auth-page__card:has(.ep-team-invitation-registration-page) form.ep-billing-signup-form > .js-form-wrapper.form-actions,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) form.ep-billing-signup-form > .js-form-wrapper.form-actions,
.ep-auth-page__card:has(.ep-team-invitation-registration-page) form.ep-billing-signup-form > *:last-child,
.ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) form.ep-billing-signup-form > *:last-child {
  margin-bottom: 0 !important;
}

.ep-billing-signup-page--form .ep-billing-signup-page__title {
  font-size: clamp(1.75rem, 4vw, 2.125rem);
  margin: 0 0 1.5rem;
  text-align: center;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--form .ep-billing-signup-page__inner {
  width: 100%;
}

/* Check email — centre copy in the card with generous side inset. */
.ep-auth-page__card:has(.ep-billing-signup-page--check-email) > .block,
.ep-auth-page__card:has(.ep-billing-signup-page--check-email) > .block-system-main-block {
  justify-content: center !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page--check-email) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-page--check-email) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-billing-signup-page--check-email {
  width: 100%;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--check-email .ep-billing-signup-page__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  padding-inline: 0;
  box-sizing: border-box;
  text-align: center;
}

.ep-billing-signup-page--check-email .ep-billing-signup-page__title {
  font-size: clamp(1.75rem, 4vw, 2.125rem);
  margin-top: 0;
  margin-bottom: 1.5rem;
  color: var(--ep-color-text-primary);
  text-wrap: balance;
}

@media (min-width: 480px) {
  .ep-billing-signup-page--check-email .ep-billing-signup-page__title {
    white-space: nowrap;
    text-wrap: nowrap;
  }
}

.ep-billing-signup-page--check-email .ep-billing-signup-page__intro {
  margin-top: 0;
  margin-bottom: 0;
  color: var(--ep-color-text-primary);
  line-height: var(--ep-line-height-relaxed, 1.625);
}

.ep-billing-signup-page--landing .ep-billing-signup-page__secondary {
  margin-top: 0;
}

.ep-billing-signup-page--onboarding-branding .ep-site-branding,
.ep-billing-signup-page--onboarding-branding .ep-site-branding__frame,
.ep-billing-signup-page--onboarding-branding .ep-site-branding__preview-card {
  max-width: 100% !important;
  --ep-site-preview-column: 100%;
}

@media (max-width: 768px) {
  .ep-auth-page__card:has(.ep-billing-signup-page):not(:has(.ep-billing-signup-page--landing)):not(:has(.ep-billing-signup-page--check-email)):not(:has(.ep-billing-signup-page--welcome)):not(:has(.ep-billing-signup-page--onboarding-profile)):not(:has(.ep-billing-signup-page--onboarding-branding)):not(:has(.ep-billing-signup-page--onboarding-preferences)):not(:has(.ep-billing-signup-page--plan)):not(:has(.ep-billing-signup-page--payment)):not(:has(.ep-billing-signup-login-form)):not(:has(.ep-billing-signup-page--form)) {
    height: auto;
    min-height: var(--ep-billing-signup-card-min-height);
  }

  .ep-auth-page__card:has(.ep-billing-signup-page--form):not(:has(.ep-team-invitation-registration-page)):not(:has(.ep-planning-partner-invitation-registration-page)) {
    height: auto;
    min-height: var(--ep-billing-signup-create-form-card-height);
  }

  .ep-auth-page__card:has(.ep-team-invitation-registration-page),
  .ep-auth-page__card:has(.ep-planning-partner-invitation-registration-page) {
    height: fit-content !important;
    min-height: 0 !important;
  }

  .ep-auth-page__card:has(.ep-billing-signup-page--landing),
  .ep-auth-page__card:has(.ep-billing-signup-page--check-email),
  .ep-auth-page__card:has(.ep-billing-signup-page--welcome),
  .ep-auth-page__card:has(.ep-billing-signup-page--onboarding-profile),
  .ep-auth-page__card:has(.ep-billing-signup-page--onboarding-branding),
  .ep-auth-page__card:has(.ep-billing-signup-page--onboarding-preferences),
  .ep-auth-page__card:has(.ep-billing-signup-page--plan),
  .ep-auth-page__card:has(.ep-billing-signup-page--payment),
  .ep-auth-page__card:has(.ep-billing-signup-login-form) {
    height: fit-content !important;
    min-height: 0 !important;
  }
}

.ep-auth-page__main,
.ep-auth-page > .row {
  background: transparent;
}

.ep-auth-page__card h1,
.ep-auth-page__card .block-page-title-block h1,
.ep-auth-page__card .block-page-title-block .title {
  font-size: clamp(1.5rem, 3vw, 1.75rem);
  margin-bottom: 1.25rem;
  color: var(--ep-color-text-primary, #1a202c);
}

.ep-auth-page__card .form-actions,
.ep-auth-page__card .user-form .form-actions {
  margin-top: 1.5rem;
}

/* Core login — centred submit button. */
.ep-auth-page__card form.user-login-form > .form-actions,
.ep-auth-page__card form.user-login-form > .js-form-wrapper.form-actions {
  display: flex !important;
  justify-content: center !important;
  text-align: center !important;
  margin-bottom: 0 !important;
}

/*
 * Login forms: fixed label column so every input is the same width.
 * Global ep-forms uses minmax(140px, auto) per row, so longer labels (e.g.
 * "Email or username") shrink the input compared to shorter ones ("Password").
 * Same pattern as signup create account (see ep-billing-signup-form rules).
 */
.ep-auth-page__card form.user-login-form > .form-item,
.ep-auth-page__card form.user-login-form > .js-form-item,
.ep-auth-page__card form.ep-billing-signup-login-form > .form-item:not(.form-type-link),
.ep-auth-page__card form.ep-billing-signup-login-form > .js-form-item:not(.form-type-link) {
  display: grid !important;
  grid-template-columns: var(--ep-billing-signup-form-grid-columns) !important;
  column-gap: var(--ep-billing-signup-form-column-gap) !important;
  row-gap: var(--ep-spacing-xs, 0.25rem) !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

.ep-auth-page__card form.user-login-form > .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ep-auth-page__card form.user-login-form > .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ep-auth-page__card form.ep-billing-signup-login-form > .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ep-auth-page__card form.ep-billing-signup-login-form > .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* Core login (/user/login) — natural card height from form content. */
.ep-auth-page__card:has(.user-login-form) {
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.user-login-form) > .block,
.ep-auth-page__card:has(.user-login-form) > .block-system-main-block,
.ep-auth-page__card:has(.user-login-form) .block-system-main-block > .content {
  margin-bottom: 0 !important;
}

.ep-auth-page__card:has(.user-login-form) form.user-login-form > .form-actions,
.ep-auth-page__card:has(.user-login-form) form.user-login-form > .js-form-wrapper.form-actions,
.ep-auth-page__card:has(.user-login-form) form.user-login-form > .form-actions.mb-3,
.ep-auth-page__card:has(.user-login-form) form.user-login-form > .js-form-wrapper.form-actions.mb-3,
.ep-auth-page__card:has(.user-login-form) form.user-login-form > *:last-child {
  margin-bottom: 0 !important;
}

/* Password reset (one-time link → set password) — auth card + aligned fields. */
.ep-auth-page__card:has(.ep-user-pass-reset-form) {
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-user-pass-reset-form) .block-page-title-block {
  display: none !important;
}

.ep-auth-page__card:has(.ep-user-pass-reset-form) > .block,
.ep-auth-page__card:has(.ep-user-pass-reset-form) > .block-system-main-block,
.ep-auth-page__card:has(.ep-user-pass-reset-form) .block-system-main-block > .content {
  margin-bottom: 0 !important;
}

.ep-user-pass-reset-form__title {
  margin: 0 0 var(--ep-spacing-md, 1rem);
  text-align: center;
}

form.ep-user-pass-reset-form {
  width: 100% !important;
  max-width: 100% !important;
}

form.ep-user-pass-reset-form > .form-type-container,
form.ep-user-pass-reset-form > #edit-account {
  display: contents !important;
}

form.ep-user-pass-reset-form #edit-account .js-form-item-mail,
form.ep-user-pass-reset-form #edit-account .form-item-mail,
form.ep-user-pass-reset-form .account > .form-item,
form.ep-user-pass-reset-form .account > .js-form-item,
form.ep-user-pass-reset-form > .form-type-container > .form-item,
form.ep-user-pass-reset-form > .form-type-container > .js-form-item,
form.ep-user-pass-reset-form .form-type-password-confirm > .form-item,
form.ep-user-pass-reset-form .form-type-password-confirm > .js-form-item {
  display: grid !important;
  grid-template-columns: var(--ep-billing-signup-form-grid-columns) !important;
  column-gap: var(--ep-billing-signup-form-column-gap) !important;
  row-gap: var(--ep-spacing-xs, 0.25rem) !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

form.ep-user-pass-reset-form .form-type-password-confirm,
form.ep-user-pass-reset-form #edit-pass {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

form.ep-user-pass-reset-form .form-type-password-confirm > .form-item:last-child,
form.ep-user-pass-reset-form .form-type-password-confirm > .js-form-item:last-child {
  margin-bottom: 0 !important;
}

form.ep-user-pass-reset-form .password-parent,
form.ep-user-pass-reset-form .confirm-parent {
  grid-column: 2 !important;
  max-width: none !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
}

form.ep-user-pass-reset-form #edit-mail {
  grid-column: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

form.ep-user-pass-reset-form input.password-field,
form.ep-user-pass-reset-form input.password-confirm,
form.ep-user-pass-reset-form .password-field,
form.ep-user-pass-reset-form .password-confirm {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

form.ep-user-pass-reset-form .password-strength,
form.ep-user-pass-reset-form .password-confirm-message {
  width: 100% !important;
  max-width: 100% !important;
  margin-top: var(--ep-spacing-xs, 0.25rem) !important;
  font-size: var(--ep-billing-signup-form-password-feedback-font-size) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
}

/* Match signup: strength/match sit in the input column when siblings of password-parent. */
form.ep-user-pass-reset-form .form-type-password-confirm > .form-item .password-strength,
form.ep-user-pass-reset-form .form-type-password-confirm > .js-form-item .password-strength,
form.ep-user-pass-reset-form .form-type-password-confirm > .form-item .password-confirm-message,
form.ep-user-pass-reset-form .form-type-password-confirm > .js-form-item .password-confirm-message {
  grid-column: 2 !important;
}

form.ep-user-pass-reset-form .password-strength__meter {
  width: 100% !important;
  max-width: 100% !important;
}

form.ep-user-pass-reset-form .password-strength__title,
form.ep-user-pass-reset-form .password-confirm-match {
  font-size: inherit !important;
  line-height: inherit !important;
}

form.ep-user-pass-reset-form .password-confirm-match {
  width: 100% !important;
  max-width: 100% !important;
}

.ep-auth-page__card:has(.ep-user-pass-reset-form) form.ep-user-pass-reset-form > .form-actions,
.ep-auth-page__card:has(.ep-user-pass-reset-form) form.ep-user-pass-reset-form > .js-form-wrapper.form-actions {
  display: flex !important;
  justify-content: center !important;
  text-align: center !important;
  margin-top: var(--ep-spacing-md, 1rem) !important;
  margin-bottom: 0 !important;
}

/* Signup flow login (/signup/login) — natural card height, centred intro + form. */
.ep-auth-page__card:has(.ep-billing-signup-login-form) {
  --ep-billing-signup-card-padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  max-width: min(var(--ep-auth-page-card-max-width), 100%) !important;
  height: fit-content !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: visible;
  padding-bottom: var(--ep-auth-login-card-padding-bottom) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-login-form) > .block,
.ep-auth-page__card:has(.ep-billing-signup-login-form) > .block-system-main-block {
  justify-content: center !important;
  flex: 0 0 auto !important;
  min-height: auto !important;
}

.ep-auth-page__card:has(.ep-billing-signup-login-form) .block-system-main-block > .content,
.ep-auth-page__card:has(.ep-billing-signup-login-form) .ep-billing-signup-page {
  flex: 0 0 auto !important;
  min-height: auto !important;
  justify-content: center !important;
}

.ep-auth-page__card:has(.ep-billing-signup-login-form) form.ep-billing-signup-login-form {
  flex: 0 0 auto !important;
  min-height: auto !important;
}

/*
 * Plain core managed_file (no EP zone): file + Upload on one row.
 * .ep-upload-zone uses the drop zone from ep-file-upload.css + ep-file-handler.js
 * (upload submit hidden; file change auto-clicks it — same pattern as branding).
 */
.ep-auth-page__card .form-managed-file:not(.ep-upload-zone) {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0.75rem;
}

.ep-auth-page__card .form-managed-file:not(.ep-upload-zone) input[type="file"] {
  flex: 1 1 12rem;
  min-width: 0;
}

.ep-auth-page__card .form-managed-file:not(.ep-upload-zone) input[type="submit"],
.ep-auth-page__card .form-managed-file:not(.ep-upload-zone) button[type="submit"] {
  flex: 0 0 auto;
}

/* Full-width drop zone inside the auth card. */
.ep-auth-page__card .form-managed-file.ep-upload-zone {
  width: 100%;
  max-width: 100%;
}

/**
 * Managed_file "Upload" button: always visually hidden on auth pages.
 * High specificity so it wins over Bootstrap / form styles if .ep-upload-zone is missing.
 */
.ep-auth-page__card .js-form-managed-file input[type="submit"][name*="_upload_button"],
.ep-auth-page__card .js-form-managed-file button[type="submit"][name*="_upload_button"],
.ep-auth-page__card .form-managed-file input[type="submit"][name*="_upload_button"],
.ep-auth-page__card .form-managed-file button[type="submit"][name*="_upload_button"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* Org-owner signup landing (/signup). */
.ep-billing-signup-page:has(.ep-billing-signup-page__primary) {
  display: flex;
  flex-direction: column;
}

.ep-billing-signup-page__primary {
  flex: 0 0 auto;
  text-align: center;
}

/* Landing: primary block stays grouped; secondary sits lower in the card. */
.ep-billing-signup-page--landing:has(.ep-billing-signup-page__secondary) .ep-billing-signup-page__primary {
  padding-bottom: 0;
}

.ep-billing-signup-page__secondary {
  flex: 0 0 auto;
  padding-top: 0.75rem;
  padding-bottom: 0;
  margin-bottom: 0;
  border-top: var(--ep-border-width-thick) solid var(--ep-color-input-border);
}

.ep-billing-signup-page__title {
  font-family: var(--ep-font-family-title);
  font-weight: var(--ep-font-weight-normal);
  letter-spacing: -0.01em;
  line-height: var(--ep-line-height-tight);
  text-align: center;
  color: var(--ep-color-text-primary);
}

/* Route page titles on signup auth cards (e.g. /signup/login). */
.ep-auth-page__card:has(.ep-billing-signup-page) .block-page-title-block h1,
.ep-auth-page__card:has(.ep-billing-signup-page) .block-page-title-block .title {
  font-family: var(--ep-font-family-title);
  font-weight: var(--ep-font-weight-normal);
  letter-spacing: -0.01em;
  line-height: var(--ep-line-height-tight);
}

.ep-billing-signup-page__intro {
  margin-bottom: 1.5rem;
  text-align: center;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page__cta {
  display: inline-flex;
  width: auto;
  margin-bottom: 0;
}

/* Get started CTA — always render as EP button, never as a default link. */
.ep-billing-signup-page__cta.ep-button,
.ep-billing-signup-page__cta.ep-button--primary,
a.ep-billing-signup-page__cta,
a.ep-billing-signup-page__cta:link,
a.ep-billing-signup-page__cta:visited,
a.ep-billing-signup-page__cta:hover,
a.ep-billing-signup-page__cta:focus,
a.ep-billing-signup-page__cta:focus-visible,
a.ep-billing-signup-page__cta:active {
  color: var(--ep-color-text-primary) !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
  border-color: var(--ep-color-text-primary) !important;
  background-color: var(--ep-color-white, #fff) !important;
}

.ep-billing-signup-page__invite-note {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  text-align: center;
}

.ep-billing-signup-page__invite-note p {
  margin-top: 0.35rem;
  margin-bottom: 0;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page__footer-links {
  margin-top: 0.5rem;
  margin-bottom: 0;
  text-align: center;
  font-size: var(--ep-font-size-xs, 0.75rem);
  line-height: var(--ep-line-height-normal, 1.5);
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page__footer-links a {
  font-size: inherit;
  color: var(--ep-color-text-primary);
  font-weight: var(--ep-font-weight-medium, 500);
  text-decoration: underline;
  text-decoration-color: var(--ep-color-text-primary);
}

.ep-billing-signup-page__footer-links a:hover,
.ep-billing-signup-page__footer-links a:focus-visible {
  color: var(--ep-color-text-primary);
  text-decoration-color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--landing {
  flex: 0 0 auto !important;
  min-height: auto !important;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--landing .ep-billing-signup-page__inner {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto !important;
  min-height: auto !important;
  width: 100%;
  max-width: 34rem;
  margin-inline: auto;
  box-sizing: border-box;
}

.ep-billing-signup-page--landing .ep-billing-signup-page__title {
  font-size: clamp(1.75rem, 4vw, 2.125rem);
  margin-bottom: 1.5rem;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--landing .ep-billing-signup-page__intro {
  margin-bottom: 2rem;
  color: var(--ep-color-text-primary);
  align-self: stretch;
}

.ep-billing-signup-page--landing .ep-billing-signup-page__primary {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto !important;
  min-height: auto !important;
  padding-top: 0;
  padding-bottom: 0;
}

.ep-billing-signup-page--landing .ep-billing-signup-page__cta {
  width: auto;
  align-self: center;
  margin-bottom: 0;
}

.ep-billing-signup-page--landing .ep-billing-signup-page__secondary {
  flex: 0 0 auto;
  margin-top: var(--ep-spacing-lg, 1.5rem);
  padding-top: var(--ep-spacing-md, 1rem);
  padding-bottom: 0;
  margin-bottom: 0;
}

.ep-billing-signup-page--landing .ep-billing-signup-page__invite-note,
.ep-billing-signup-page--landing .ep-billing-signup-page__invite-note strong,
.ep-billing-signup-page--landing .ep-billing-signup-page__invite-note p {
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--landing .ep-billing-signup-page__footer-links {
  margin-top: 0.5rem;
  margin-bottom: 0;
  color: var(--ep-color-text-primary);
}

.ep-billing-signup-page--landing .ep-billing-signup-page__footer-links a {
  color: var(--ep-color-text-primary);
  text-decoration-color: var(--ep-color-text-primary);
}

/* Signup create form: fixed label column so every input aligns (incl. confirm password). */
form.ep-form.ep-billing-signup-form,
form.ep-billing-signup-form {
  width: 100% !important;
  max-width: 100% !important;
}

form.ep-form.ep-billing-signup-form > .form-item:not(.form-type-checkbox):not(.form-type-password-confirm),
form.ep-form.ep-billing-signup-form > .js-form-item:not(.form-type-checkbox):not(.js-form-type-password-confirm),
form.ep-billing-signup-form > .form-item:not(.form-type-checkbox):not(.form-type-password-confirm),
form.ep-billing-signup-form > .js-form-item:not(.form-type-checkbox):not(.js-form-type-password-confirm),
form.ep-form.ep-billing-signup-form .form-type-password-confirm > .form-item,
form.ep-form.ep-billing-signup-form .form-type-password-confirm > .js-form-item,
form.ep-billing-signup-form .form-type-password-confirm > .form-item,
form.ep-billing-signup-form .form-type-password-confirm > .js-form-item {
  display: grid !important;
  grid-template-columns: var(--ep-billing-signup-form-grid-columns) !important;
  column-gap: var(--ep-billing-signup-form-column-gap) !important;
  row-gap: var(--ep-spacing-xs, 0.25rem) !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

/* Password confirm wrapper is a stack only — rows above are the nested form-items. */
form.ep-form.ep-billing-signup-form > .form-type-password-confirm,
form.ep-billing-signup-form > .form-type-password-confirm,
form.ep-form.ep-billing-signup-form > #edit-pass,
form.ep-billing-signup-form > #edit-pass,
form.ep-form.ep-billing-signup-form > #edit-password,
form.ep-billing-signup-form > #edit-password {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
  grid-template-columns: none !important;
}

form.ep-form.ep-billing-signup-form > .form-type-password-confirm > .form-item,
form.ep-form.ep-billing-signup-form > .form-type-password-confirm > .js-form-item,
form.ep-billing-signup-form > .form-type-password-confirm > .form-item,
form.ep-billing-signup-form > .form-type-password-confirm > .js-form-item {
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

form.ep-form.ep-billing-signup-form > .form-type-password-confirm > .form-item:last-child,
form.ep-form.ep-billing-signup-form > .form-type-password-confirm > .js-form-item:last-child,
form.ep-billing-signup-form > .form-type-password-confirm > .form-item:last-child,
form.ep-billing-signup-form > .form-type-password-confirm > .js-form-item:last-child {
  margin-bottom: 0 !important;
}

form.ep-form.ep-billing-signup-form .password-parent,
form.ep-billing-signup-form .password-parent,
form.ep-form.ep-billing-signup-form .confirm-parent,
form.ep-billing-signup-form .confirm-parent {
  max-width: none !important;
  overflow: visible !important;
}

form.ep-form.ep-billing-signup-form input.password-field,
form.ep-billing-signup-form input.password-field,
form.ep-form.ep-billing-signup-form input.password-confirm,
form.ep-billing-signup-form input.password-confirm,
form.ep-form.ep-billing-signup-form .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.ep-billing-signup-form .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.ep-form.ep-billing-signup-form .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.ep-billing-signup-form .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

form.ep-form.ep-billing-signup-form .password-strength,
form.ep-billing-signup-form .password-strength,
form.ep-form.ep-billing-signup-form .password-confirm-message,
form.ep-billing-signup-form .password-confirm-message,
form.ep-form.ep-billing-signup-form .password-suggestions,
form.ep-billing-signup-form .password-suggestions {
  grid-column: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: var(--ep-billing-signup-form-password-feedback-font-size) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
}

form.ep-billing-signup-form .password-parent {
  position: relative;
}

/* Strength / match feedback and suggestions stay in the input column under each row. */
form.ep-form.ep-billing-signup-form > .form-type-password-confirm .password-suggestions,
form.ep-billing-signup-form > .form-type-password-confirm .password-suggestions {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 var(--ep-spacing-md, 1rem) !important;
  padding-left: calc(var(--ep-billing-signup-form-label-column) + var(--ep-billing-signup-form-column-gap)) !important;
  box-sizing: border-box !important;
  font-size: var(--ep-billing-signup-form-password-feedback-font-size) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 30;
  background-color: var(--ep-color-white, #fff);
  border: var(--ep-border-width) solid var(--ep-color-input-border);
  padding: var(--ep-spacing-sm, 0.75rem);
  box-shadow: 0 4px 16px var(--ep-color-shadow-light);
  box-sizing: border-box;
  font-size: var(--ep-billing-signup-form-password-feedback-font-size) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint-default-title {
  margin: 0 0 var(--ep-spacing-xs, 0.25rem);
  font-size: inherit;
  line-height: inherit;
  color: var(--ep-color-text-primary);
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint-default ul {
  margin: 0;
  padding-left: 1.25rem;
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint-default li {
  margin: 0.15rem 0;
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint.is-visible {
  display: block;
}

/* One copy only: hide static list when Drupal fills live suggestions. */
form.ep-billing-signup-form .ep-billing-signup-form__password-hint:has(.password-suggestions:not(:empty)) .ep-billing-signup-form__password-hint-default {
  display: none;
}

form.ep-billing-signup-form .password-suggestions {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  max-width: none !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

form.ep-billing-signup-form .ep-billing-signup-form__password-hint.is-visible .password-suggestions:not(:empty) {
  display: block !important;
  margin-top: 0 !important;
}

form.ep-billing-signup-form.ep-billing-signup-form--password-active .ep-billing-signup-form__password-hint,
form.ep-billing-signup-form.ep-billing-signup-form--password-active .password-suggestions {
  display: none !important;
}

form.ep-billing-signup-form .password-suggestions ul {
  margin: 0.25rem 0 0;
  padding-left: 1.25rem;
}

form.ep-form.ep-billing-signup-form .password-strength__title,
form.ep-billing-signup-form .password-strength__title,
form.ep-form.ep-billing-signup-form .password-confirm-match,
form.ep-billing-signup-form .password-confirm-match {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* Terms row — same 2-column grid as field rows; checkbox in label column, T&C text in value column. */
form.ep-form.ep-billing-signup-form .ep-billing-signup-form__terms-row,
form.ep-billing-signup-form .ep-billing-signup-form__terms-row {
  display: grid !important;
  grid-template-columns: var(--ep-billing-signup-form-grid-columns) !important;
  column-gap: var(--ep-billing-signup-form-column-gap) !important;
  row-gap: 0 !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin-bottom: var(--ep-spacing-md, 1rem) !important;
}

form.ep-form.ep-billing-signup-form .ep-billing-signup-form__terms-row > .form-item-terms,
form.ep-billing-signup-form .ep-billing-signup-form__terms-row > .form-item-terms,
form.ep-form.ep-billing-signup-form .ep-billing-signup-form__terms-row > .js-form-item-terms,
form.ep-billing-signup-form .ep-billing-signup-form__terms-row > .js-form-item-terms {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
}

form.ep-form.ep-billing-signup-form .ep-billing-signup-form__terms-row input[type="checkbox"],
form.ep-billing-signup-form .ep-billing-signup-form__terms-row input[type="checkbox"] {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  margin: 0.125rem 0 0 0 !important;
  padding: 0 !important;
  justify-self: start !important;
  align-self: start !important;
  flex: none !important;
}

form.ep-form.ep-billing-signup-form .ep-billing-signup-form__terms-row .form-check-label,
form.ep-billing-signup-form .ep-billing-signup-form__terms-row .form-check-label {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: normal !important;
  font-size: var(--ep-font-size-xs, 0.75rem) !important;
  font-weight: var(--ep-font-weight-normal, 400) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
  color: var(--ep-color-text-primary) !important;
}

form.ep-form.ep-billing-signup-form > .form-actions,
form.ep-billing-signup-form > .form-actions,
form.ep-form.ep-billing-signup-form > .js-form-wrapper.form-actions,
form.ep-billing-signup-form > .js-form-wrapper.form-actions {
  display: flex !important;
  justify-content: center !important;
  text-align: center !important;
  margin-top: var(--ep-spacing-md, 1rem) !important;
  margin-bottom: 0 !important;
}

/* Submit: white + beige outline/text while disabled; ink button once enabled. */
.ep-auth-page__card form.ep-billing-signup-form .ep-billing-signup-form__submit:disabled,
.ep-auth-page__card form.ep-billing-signup-form .ep-billing-signup-form__submit[disabled] {
  opacity: 1 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  color: var(--ep-billing-signup-submit-pending-text) !important;
  background-color: var(--ep-color-white, #fff) !important;
  border-color: var(--ep-billing-signup-submit-pending-border) !important;
  border-width: var(--ep-button-border-width) !important;
}

.ep-auth-page__card form.ep-billing-signup-form .ep-billing-signup-form__submit:not(:disabled):not([disabled]) {
  color: var(--ep-color-text-primary) !important;
  background-color: var(--ep-color-white, #fff) !important;
  border-color: var(--ep-color-text-primary) !important;
  border-width: var(--ep-button-border-width) !important;
}

.ep-auth-page__card form.ep-billing-signup-form .ep-billing-signup-form__submit:not(:disabled):not([disabled]):hover {
  background-color: var(--ep-color-bg-hover, #F1EFE9) !important;
  border-color: var(--ep-color-text-primary) !important;
  color: var(--ep-color-text-primary) !important;
}

/* Signup login (/signup/login): centred submit, compact card foot. */
form.ep-form.ep-billing-signup-login-form .form-actions,
form.ep-billing-signup-login-form .form-actions {
  display: flex !important;
  justify-content: center !important;
  text-align: center !important;
  margin-top: var(--ep-spacing-md, 1rem) !important;
  margin-bottom: 0 !important;
}

.ep-auth-page__card:has(.ep-billing-signup-login-form) .ep-billing-signup-page__intro {
  margin-bottom: 1rem;
}

/* Phase 3 onboarding wizard inside auth card. */
.ep-billing-signup-page--onboarding .ep-billing-signup-page__intro {
  margin-bottom: 1rem;
}

.ep-billing-signup-page--onboarding form.ep-billing-signup-onboarding-form .form-actions,
.ep-billing-signup-page--onboarding .ep-billing-signup-onboarding-form .form-actions,
.ep-billing-signup-page--onboarding .ep-user-account-profile-form .form-actions,
.ep-billing-signup-page--onboarding .ep-site-branding-form .form-actions,
.ep-billing-signup-page--onboarding form.ep-form .form-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--ep-spacing-md, 1rem) !important;
  text-align: center !important;
  width: 100% !important;
  margin-top: var(--ep-spacing-md, 1rem) !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  border-top: none !important;
}

.ep-billing-signup-onboarding-form .form-radios:not(.ep-billing-signup-plan-picker__period-radios) {
  display: grid;
  gap: var(--ep-spacing-sm, 0.5rem);
  justify-items: start;
  margin-bottom: var(--ep-spacing-md, 1rem);
}

/* Warm stone accents — links and fields inside auth/signup cards. Buttons keep ink borders. */
.ep-auth-page__card .ep-button,
.ep-auth-page__card a.ep-button,
.ep-auth-page__card .button,
.ep-auth-page__card input[type="submit"].button,
.ep-auth-page__card button.button {
  border-color: var(--ep-color-text-primary) !important;
  border-width: var(--ep-button-border-width) !important;
  background-color: var(--ep-color-white, #fff) !important;
}

.ep-auth-page__card .ep-button:hover,
.ep-auth-page__card a.ep-button:hover,
.ep-auth-page__card .button:hover,
.ep-auth-page__card input[type="submit"].button:hover,
.ep-auth-page__card button.button:hover {
  border-color: var(--ep-color-text-primary) !important;
  background-color: var(--ep-color-bg-tertiary) !important;
  color: var(--ep-color-text-primary) !important;
}

.ep-auth-page__card a:not(.ep-button):not(.button):not(.ep-billing-signup-page__cta):not(.ep-auth-login-form__forgot),
.ep-auth-page__card .ep-upload-zone__browse-link,
.ep-auth-page__card .browse-link {
  color: var(--ep-color-link);
  text-decoration: underline;
  text-decoration-color: var(--ep-color-link);
}

.ep-auth-page__card a:not(.ep-button):not(.button):not(.ep-billing-signup-page__cta):not(.ep-auth-login-form__forgot):hover,
.ep-auth-page__card a:not(.ep-button):not(.button):not(.ep-billing-signup-page__cta):not(.ep-auth-login-form__forgot):focus-visible,
.ep-auth-page__card .ep-upload-zone__browse-link:hover,
.ep-auth-page__card .browse-link:hover {
  color: var(--ep-color-link-hover);
  text-decoration-color: var(--ep-color-link-hover);
}

.ep-auth-page__card form.user-login-form a.ep-auth-login-form__forgot,
.ep-auth-page__card form.ep-billing-signup-login-form a.ep-auth-login-form__forgot,
.ep-auth-page__card a.ep-auth-login-form__forgot,
a.ep-auth-login-form__forgot {
  display: block;
  width: fit-content;
  margin: 0 0 var(--ep-spacing-md, 1rem);
  margin-left: calc(var(--ep-billing-signup-form-label-column) + var(--ep-billing-signup-form-column-gap));
  color: var(--ep-color-link, #a67a7a) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--ep-color-link, #a67a7a) !important;
  -webkit-text-fill-color: var(--ep-color-link, #a67a7a);
}

.ep-auth-page__card form.user-login-form a.ep-auth-login-form__forgot:hover,
.ep-auth-page__card form.user-login-form a.ep-auth-login-form__forgot:focus-visible,
.ep-auth-page__card form.ep-billing-signup-login-form a.ep-auth-login-form__forgot:hover,
.ep-auth-page__card form.ep-billing-signup-login-form a.ep-auth-login-form__forgot:focus-visible,
.ep-auth-page__card a.ep-auth-login-form__forgot:hover,
.ep-auth-page__card a.ep-auth-login-form__forgot:focus-visible,
a.ep-auth-login-form__forgot:hover,
a.ep-auth-login-form__forgot:focus-visible {
  color: var(--ep-color-link-hover, #8b6565) !important;
  text-decoration-color: var(--ep-color-link-hover, #8b6565) !important;
  -webkit-text-fill-color: var(--ep-color-link-hover, #8b6565);
}

.ep-auth-page__card:has(.ep-billing-signup-page) .ep-billing-signup-page__footer-links a {
  color: var(--ep-color-text-primary) !important;
  text-decoration: underline;
  text-decoration-color: var(--ep-color-text-primary) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page) .ep-billing-signup-page__footer-links a:hover,
.ep-auth-page__card:has(.ep-billing-signup-page) .ep-billing-signup-page__footer-links a:focus-visible {
  color: var(--ep-color-text-primary) !important;
  text-decoration-color: var(--ep-color-text-primary) !important;
}

.ep-auth-page__card:has(.ep-billing-signup-page) a.ep-billing-signup-page__cta {
  color: var(--ep-color-text-primary) !important;
  text-decoration: none !important;
  text-decoration-line: none !important;
}

.ep-auth-page__card .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ep-auth-page__card .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ep-auth-page__card .form-item select,
.ep-auth-page__card .js-form-item select,
.ep-auth-page__card .form-item textarea,
.ep-auth-page__card .js-form-item textarea,
.ep-auth-page__card .form-control,
.ep-auth-page__card input.form-control,
.ep-auth-page__card textarea.form-control,
.ep-auth-page__card select.form-control {
  border-color: var(--ep-color-input-border) !important;
  background-color: var(--ep-color-white, #fff) !important;
}

.ep-auth-page__card .form-control:focus,
.ep-auth-page__card .form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.ep-auth-page__card .js-form-item input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.ep-auth-page__card .form-item textarea:focus,
.ep-auth-page__card .js-form-item textarea:focus,
.ep-auth-page__card .form-item select:focus,
.ep-auth-page__card .js-form-item select:focus {
  background-color: var(--ep-color-white, #fff) !important;
}

.ep-auth-page__card input:-webkit-autofill,
.ep-auth-page__card input:-webkit-autofill:hover,
.ep-auth-page__card input:-webkit-autofill:focus,
.ep-auth-page__card textarea:-webkit-autofill,
.ep-auth-page__card select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--ep-color-white, #fff) inset !important;
  box-shadow: 0 0 0 1000px var(--ep-color-white, #fff) inset !important;
  -webkit-text-fill-color: var(--ep-color-text-primary) !important;
  caret-color: var(--ep-color-text-primary) !important;
  font-size: var(--ep-font-size-base, 1rem) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
  font-family: inherit !important;
}

/* Login form — keep input text size stable on focus, submit, and validation. */
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]),
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]) {
  font-size: max(16px, var(--ep-font-size-base, 1rem)) !important;
  line-height: var(--ep-line-height-normal, 1.5) !important;
  font-family: inherit !important;
  -webkit-text-size-adjust: 100%;
}

.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]):focus,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]):active,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]).error,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]).is-invalid,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]):-webkit-autofill,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]):-webkit-autofill:hover,
.ep-auth-page__card form.user-login-form input.form-control:not([type="hidden"]):-webkit-autofill:focus,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]):focus,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]):active,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]).error,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]).is-invalid,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]):-webkit-autofill,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]):-webkit-autofill:hover,
.ep-auth-page__card form.ep-billing-signup-login-form input.form-control:not([type="hidden"]):-webkit-autofill:focus {
  font-size: max(16px, var(--ep-font-size-base, 1rem)) !important;
}

/* Hide card instantly when leaving login via Sign up (header/footer link). */
.ep-auth-page__card.ep-auth-page__card--leaving {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: none !important;
}

.ep-auth-page__card .ep-form .form-actions {
  border-top-color: var(--ep-color-list-divider);
}

/* Plan picker — My Account-style tabs, compact side-by-side plan cards */
.ep-billing-signup-page--plan .ep-billing-signup-page__intro {
  max-width: 36rem;
  margin-inline: auto;
}

.ep-billing-signup-plan-picker {
  margin-top: var(--ep-spacing-md, 1rem);
}

.ep-billing-signup-plan-picker__toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ep-spacing-md, 1rem);
  margin-bottom: var(--ep-spacing-xl, 2rem);
}

.ep-billing-signup-plan-picker__billing-nav.account-navigation {
  flex: 1 1 auto;
  margin-bottom: 0;
  text-align: center;
}

.ep-billing-signup-plan-picker__billing-nav .nav-tabs.form-wrapper {
  display: inline-flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--ep-spacing-lg, 1.5rem);
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.ep-billing-signup-plan-picker__ajax-trigger {
  position: absolute !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
}

.ep-auth-page__card .ep-billing-signup-plan-picker__billing-nav .nav-tab {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  min-width: 0;
  width: auto;
}

.ep-billing-signup-plan-picker__cards.form-wrapper,
form.ep-billing-signup-plan-form .ep-billing-signup-plan-picker__cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ep-spacing-md, 1rem);
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: var(--ep-spacing-md, 1rem);
}

.ep-billing-signup-plan-picker__cards > .form-wrapper.ep-billing-signup-plan-card,
.ep-billing-signup-plan-picker__cards > .ep-billing-signup-plan-card {
  display: flex !important;
  flex-direction: column;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

.ep-billing-signup-plan-card {
  min-height: 100%;
  padding: var(--ep-spacing-md, 1rem) var(--ep-spacing-sm, 0.75rem);
  border: var(--ep-billing-signup-box-border-width) solid var(--ep-color-input-border);
  background-color: var(--ep-color-white, #fff);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ep-billing-signup-plan-card:has(.ep-billing-signup-plan-card__input:checked) {
  border-color: var(--ep-color-text-primary);
  border-width: var(--ep-billing-signup-box-border-width);
  box-shadow: none;
}

.ep-billing-signup-plan-card__header {
  margin-bottom: var(--ep-spacing-sm, 0.5rem);
}

.ep-billing-signup-plan-card__title {
  margin: 0 0 var(--ep-spacing-xs, 0.25rem);
  color: var(--ep-color-text-primary);
  font-family: var(--ep-font-family-base, inherit);
  font-size: var(--ep-font-size-xs, 0.75rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.ep-billing-signup-plan-card__limit {
  margin: 0;
  color: var(--ep-color-text-secondary, #666);
  font-size: var(--ep-font-size-xs, 0.75rem);
}

.ep-billing-signup-plan-card__price {
  margin: var(--ep-spacing-sm, 0.5rem) 0;
}

.ep-billing-signup-plan-card__price-amount {
  display: block;
  color: var(--ep-color-text-primary);
  font-family: var(--ep-font-family-heading, inherit);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 400;
  line-height: 1.1;
}

.ep-billing-signup-plan-card__price-period {
  display: block;
  margin-top: var(--ep-spacing-xs, 0.25rem);
  color: var(--ep-color-text-secondary, #666);
  font-size: var(--ep-font-size-xs, 0.75rem);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.ep-billing-signup-plan-card__savings {
  margin: 0 0 var(--ep-spacing-sm, 0.5rem);
  color: var(--ep-color-link);
  font-size: var(--ep-font-size-xs, 0.75rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ep-billing-signup-plan-card__action {
  position: absolute !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
}

.ep-billing-signup-plan-card__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

.ep-billing-signup-plan-card__select {
  display: none !important;
}

.ep-billing-signup-plan-card:has(.ep-billing-signup-plan-card__input:checked) .ep-billing-signup-plan-card__select {
  display: none !important;
}

.ep-billing-signup-plan-form .form-actions {
  margin-top: var(--ep-spacing-lg, 1.5rem);
}

@media (max-width: 768px) {
  .ep-billing-signup-plan-picker__cards.form-wrapper,
  form.ep-billing-signup-plan-form .ep-billing-signup-plan-picker__cards {
    grid-template-columns: 1fr;
    max-width: 18rem;
    margin-inline: auto;
  }
}

@media (max-width: 640px) {
  .ep-billing-signup-plan-picker__toolbar {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Payment step — selected plan mini-card + compact action buttons */
.ep-billing-signup-payment-form {
  text-align: center;
}

.ep-billing-signup-page--payment .ep-billing-signup-page__intro {
  margin-bottom: var(--ep-spacing-md, 1rem);
}

form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__plan-card,
form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__plan-card.form-wrapper,
form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__plan-card.js-form-wrapper {
  display: flex !important;
  justify-content: center;
  width: auto !important;
  max-width: none !important;
  margin: 0 auto var(--ep-spacing-lg, 1.5rem) !important;
}

form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__plan-card .ep-billing-signup-plan-card,
form.ep-billing-signup-payment-form .ep-billing-signup-payment-form__plan-card .ep-billing-signup-plan-card.form-wrapper {
  width: var(--ep-billing-signup-plan-card-width) !important;
  max-width: var(--ep-billing-signup-plan-card-width) !important;
  min-width: 0 !important;
  margin: 0 !important;
}

.ep-billing-signup-plan-card--summary {
  cursor: default;
  pointer-events: none;
}

.ep-billing-signup-payment-form .ep-billing-signup-page__intro {
  margin-bottom: var(--ep-spacing-lg, 1.5rem);
  padding-bottom: var(--ep-spacing-md, 1rem);
  border-bottom: 1px solid var(--ep-color-list-divider);
}

.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions,
.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions {
  display: inline-flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: center !important;
  width: auto !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  gap: var(--ep-spacing-sm, 0.75rem) !important;
}

.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions .ep-button,
.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions input[type="submit"],
.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions a.ep-button,
.ep-billing-signup-page--onboarding.ep-billing-signup-page--payment form.ep-form.ep-billing-signup-payment-form .form-actions.ep-billing-signup-payment-form__actions .button {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  text-align: center;
  white-space: nowrap;
  align-self: stretch;
}
