/* =============================================================================
   FedOpp auth + plan purchase branding
   Aligns login / create-account / thanks / forgot / new-password with marketing:
   navy #101820 · blue #2078D0 · red #ce2d3a · Lexend / Inter
   Target: theme assets/fedopp/css/fedopp-auth.css (bump theme 1.4.25+)
   ============================================================================= */

:root {
  --fo-navy: #101820;
  --fo-navy-2: #1a2a38;
  --fo-blue: #2078D0;
  --fo-red: #ce2d3a;
  --fo-red-hover: #b82330;
  --fo-ink: #172a3d;
  --fo-muted: #5e7185;
  --fo-line: #d5e0eb;
  --fo-bg: #f5f7fa;
  --fo-green: #16835c;
  --fo-card-shadow: 0 16px 42px rgba(16, 24, 32, 0.09);
}

/* ---------------------------------------------------------------------------
   Full-viewport auth shells (BC body.page-type-*)
   --------------------------------------------------------------------------- */
body.page-type-login,
body.page-type-createaccount,
body.page-type-createaccount_thanks,
body.page-type-forgotpassword,
body.page-type-getnewpassword {
  background: var(--fo-bg) !important;
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
  color: var(--fo-ink);
}

/* Kill Themevale / Halo / stock header chrome — high specificity + !important */
body.page-type-login .fo-site-header,
body.page-type-createaccount .fo-site-header,
body.page-type-createaccount_thanks .fo-site-header,
body.page-type-forgotpassword .fo-site-header,
body.page-type-getnewpassword .fo-site-header,
body.page-type-login .fo-site-footer,
body.page-type-createaccount .fo-site-footer,
body.page-type-createaccount_thanks .fo-site-footer,
body.page-type-forgotpassword .fo-site-footer,
body.page-type-getnewpassword .fo-site-footer,
body.page-type-login header.header,
body.page-type-createaccount header.header,
body.page-type-createaccount_thanks header.header,
body.page-type-forgotpassword header.header,
body.page-type-getnewpassword header.header,
body.page-type-login footer.footer,
body.page-type-createaccount footer.footer,
body.page-type-createaccount_thanks footer.footer,
body.page-type-forgotpassword footer.footer,
body.page-type-getnewpassword footer.footer,
body.page-type-login .header,
body.page-type-createaccount .header,
body.page-type-createaccount_thanks .header,
body.page-type-forgotpassword .header,
body.page-type-getnewpassword .header,
body.page-type-login .footer,
body.page-type-createaccount .footer,
body.page-type-createaccount_thanks .footer,
body.page-type-forgotpassword .footer,
body.page-type-getnewpassword .footer,
body.page-type-login .navPages-container,
body.page-type-createaccount .navPages-container,
body.page-type-createaccount_thanks .navPages-container,
body.page-type-forgotpassword .navPages-container,
body.page-type-getnewpassword .navPages-container,
body.page-type-login .navUser,
body.page-type-createaccount .navUser,
body.page-type-createaccount_thanks .navUser,
body.page-type-forgotpassword .navUser,
body.page-type-getnewpassword .navUser,
body.page-type-login .banners,
body.page-type-createaccount .banners,
body.page-type-createaccount_thanks .banners,
body.page-type-forgotpassword .banners,
body.page-type-getnewpassword .banners,
body.page-type-login .themevale_breadcrumb,
body.page-type-createaccount .themevale_breadcrumb,
body.page-type-createaccount_thanks .themevale_breadcrumb,
body.page-type-forgotpassword .themevale_breadcrumb,
body.page-type-getnewpassword .themevale_breadcrumb,
body.page-type-login .breadcrumbs,
body.page-type-createaccount .breadcrumbs,
body.page-type-createaccount_thanks .breadcrumbs,
body.page-type-forgotpassword .breadcrumbs,
body.page-type-getnewpassword .breadcrumbs,
body.page-type-login .page-heading,
body.page-type-createaccount .page-heading,
body.page-type-createaccount_thanks .page-heading,
body.page-type-login .themevale_Mobile,
body.page-type-createaccount .themevale_Mobile,
body.page-type-createaccount_thanks .themevale_Mobile,
body.page-type-forgotpassword .themevale_Mobile,
body.page-type-getnewpassword .themevale_Mobile,
body.page-type-login .themevale_MobileMenu,
body.page-type-createaccount .themevale_MobileMenu,
body.page-type-createaccount_thanks .themevale_MobileMenu,
body.page-type-forgotpassword .themevale_MobileMenu,
body.page-type-getnewpassword .themevale_MobileMenu,
body.page-type-login .themevale_MobileAccount,
body.page-type-createaccount .themevale_MobileAccount,
body.page-type-createaccount_thanks .themevale_MobileAccount,
body.page-type-forgotpassword .themevale_MobileAccount,
body.page-type-getnewpassword .themevale_MobileAccount,
body.page-type-login .themevale_MobileCart,
body.page-type-createaccount .themevale_MobileCart,
body.page-type-createaccount_thanks .themevale_MobileCart,
body.page-type-forgotpassword .themevale_MobileCart,
body.page-type-getnewpassword .themevale_MobileCart,
body.page-type-login .themevale_MobileSidebar,
body.page-type-createaccount .themevale_MobileSidebar,
body.page-type-createaccount_thanks .themevale_MobileSidebar,
body.page-type-forgotpassword .themevale_MobileSidebar,
body.page-type-getnewpassword .themevale_MobileSidebar,
body.page-type-login #menu-mobile,
body.page-type-createaccount #menu-mobile,
body.page-type-createaccount_thanks #menu-mobile,
body.page-type-forgotpassword #menu-mobile,
body.page-type-getnewpassword #menu-mobile,
body.page-type-login #account-mobile,
body.page-type-createaccount #account-mobile,
body.page-type-createaccount_thanks #account-mobile,
body.page-type-forgotpassword #account-mobile,
body.page-type-getnewpassword #account-mobile,
body.page-type-login #cart-mobile,
body.page-type-createaccount #cart-mobile,
body.page-type-createaccount_thanks #cart-mobile,
body.page-type-forgotpassword #cart-mobile,
body.page-type-getnewpassword #cart-mobile,
body.page-type-login #sidebar-mobile,
body.page-type-createaccount #sidebar-mobile,
body.page-type-createaccount_thanks #sidebar-mobile,
body.page-type-forgotpassword #sidebar-mobile,
body.page-type-getnewpassword #sidebar-mobile,
body.page-type-login .themevale_background,
body.page-type-createaccount .themevale_background,
body.page-type-createaccount_thanks .themevale_background,
body.page-type-forgotpassword .themevale_background,
body.page-type-getnewpassword .themevale_background,
body.page-type-login .themevale_searchSticky,
body.page-type-createaccount .themevale_searchSticky,
body.page-type-createaccount_thanks .themevale_searchSticky,
body.page-type-forgotpassword .themevale_searchSticky,
body.page-type-getnewpassword .themevale_searchSticky,
body.page-type-login .halo-notification-bar,
body.page-type-createaccount .halo-notification-bar,
body.page-type-createaccount_thanks .halo-notification-bar,
body.page-type-forgotpassword .halo-notification-bar,
body.page-type-getnewpassword .halo-notification-bar,
body.page-type-login #sticky-notification,
body.page-type-createaccount #sticky-notification,
body.page-type-createaccount_thanks #sticky-notification,
body.page-type-forgotpassword #sticky-notification,
body.page-type-getnewpassword #sticky-notification,
body.page-type-login .sticky-notification,
body.page-type-createaccount .sticky-notification,
body.page-type-createaccount_thanks .sticky-notification,
body.page-type-forgotpassword .sticky-notification,
body.page-type-getnewpassword .sticky-notification,
body.page-type-login .halo-topBar,
body.page-type-createaccount .halo-topBar,
body.page-type-createaccount_thanks .halo-topBar,
body.page-type-forgotpassword .halo-topBar,
body.page-type-getnewpassword .halo-topBar,
body.page-type-login .halo-top-bar,
body.page-type-createaccount .halo-top-bar,
body.page-type-createaccount_thanks .halo-top-bar,
body.page-type-forgotpassword .halo-top-bar,
body.page-type-getnewpassword .halo-top-bar,
body.page-type-login #themevale_top-promotion,
body.page-type-createaccount #themevale_top-promotion,
body.page-type-createaccount_thanks #themevale_top-promotion,
body.page-type-forgotpassword #themevale_top-promotion,
body.page-type-getnewpassword #themevale_top-promotion,
body.page-type-login .themevale_header-top,
body.page-type-createaccount .themevale_header-top,
body.page-type-createaccount_thanks .themevale_header-top,
body.page-type-forgotpassword .themevale_header-top,
body.page-type-getnewpassword .themevale_header-top,
body.page-type-login .login-dropdown,
body.page-type-createaccount .login-dropdown,
body.page-type-createaccount_thanks .login-dropdown,
body.page-type-forgotpassword .login-dropdown,
body.page-type-getnewpassword .login-dropdown,
body.page-type-login #login-dropdown,
body.page-type-createaccount #login-dropdown,
body.page-type-createaccount_thanks #login-dropdown,
body.page-type-forgotpassword #login-dropdown,
body.page-type-getnewpassword #login-dropdown,
body.page-type-login .newsletter-popup,
body.page-type-createaccount .newsletter-popup,
body.page-type-createaccount_thanks .newsletter-popup,
body.page-type-forgotpassword .newsletter-popup,
body.page-type-getnewpassword .newsletter-popup,
body.page-type-login .modal-background,
body.page-type-createaccount .modal-background,
body.page-type-createaccount_thanks .modal-background {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Duplicate Themevale / BC login forms OUTSIDE .fo-auth-page (login_email2/3 etc.) */
body.page-type-login form.login-form:not(.fo-login-form),
body.page-type-createaccount form.login-form:not(.fo-login-form),
body.page-type-createaccount_thanks form.login-form:not(.fo-login-form),
body.page-type-forgotpassword form.login-form:not(.fo-login-form),
body.page-type-getnewpassword form.login-form:not(.fo-login-form),
body.page-type-login #login_email2,
body.page-type-createaccount #login_email2,
body.page-type-login #login_email3,
body.page-type-createaccount #login_email3,
body.page-type-createaccount_thanks #login_email3,
body.page-type-forgotpassword #login_email3,
body.page-type-getnewpassword #login_email3,
body.page-type-login #login_pass2,
body.page-type-createaccount #login_pass2,
body.page-type-login #accountMobile,
body.page-type-createaccount #accountMobile,
body.page-type-createaccount_thanks #accountMobile,
body.page-type-login .navPage-subMenu-action,
body.page-type-createaccount .navPage-subMenu-action {
  display: none !important;
}

/* Hide any stock page chrome siblings above/around FedOpp auth main */
body.page-type-login .body > .container > *:not(.fo-auth-page):not(script):not(style):not(link),
body.page-type-createaccount .body > .container > *:not(.fo-auth-page):not(script):not(style):not(link),
body.page-type-createaccount_thanks .body > .container > *:not(.fo-auth-page):not(script):not(style):not(link) {
  display: none !important;
}

body.page-type-login .body,
body.page-type-createaccount .body,
body.page-type-createaccount_thanks .body,
body.page-type-forgotpassword .body,
body.page-type-getnewpassword .body {
  margin: 0 !important;
  padding: 0 !important;
  background: var(--fo-bg) !important;
  min-height: 100vh;
}

body.page-type-login .body > .container,
body.page-type-createaccount .body > .container,
body.page-type-createaccount_thanks .body > .container,
body.page-type-forgotpassword .body > .container,
body.page-type-getnewpassword .body > .container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ---------------------------------------------------------------------------
   FedOpp auth page shell
   --------------------------------------------------------------------------- */
.fo-auth-page {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  padding: 28px 20px 88px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff 0, #fff 120px, var(--fo-bg) 380px, var(--fo-bg) 100%);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: var(--fo-ink);
  box-sizing: border-box;
}

.fo-auth-page *,
.fo-auth-page *::before,
.fo-auth-page *::after {
  box-sizing: border-box;
}

.fo-auth-page::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 0;
  width: min(1120px, 92vw);
  height: 720px;
  transform: translateX(-50%);
  background: url("../images/fedopp-logo.svg") center 72px / 760px auto no-repeat;
  opacity: 0.03;
  pointer-events: none;
}

.fo-auth-logo {
  display: block;
  width: 220px;
  margin: 0 auto 28px;
}

.fo-auth-logo img {
  display: block;
  width: 100%;
  height: auto;
}

/* Progress: Account → Plan → Pay → Access */
.fo-account-progress {
  position: relative;
  width: min(680px, calc(100% - 20px));
  margin: 0 auto 44px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  list-style: none;
}

.fo-account-progress::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 17px;
  left: 12.5%;
  right: 12.5%;
  height: 1px;
  background: #bbc5d1;
}

.fo-account-progress li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: #9aa6b4;
  text-align: center;
}

.fo-account-progress li span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid #bac3cf;
  border-radius: 50%;
  background: #fff;
  font-size: 0.82rem;
  font-weight: 800;
}

.fo-account-progress li strong {
  font: 700 1rem / 1.2 Lexend, Inter, sans-serif;
}

.fo-account-progress li.is-current {
  color: var(--fo-navy);
}

.fo-account-progress li.is-current span {
  border-color: var(--fo-navy);
  box-shadow: inset 0 0 0 9px #fff;
  background: var(--fo-navy);
  color: transparent;
}

.fo-account-progress li.is-current span::after {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--fo-navy);
}

.fo-account-progress li.is-complete {
  color: var(--fo-green);
}

.fo-account-progress li.is-complete span {
  border-color: var(--fo-green);
  background: var(--fo-green);
  color: #fff;
}

/* Card */
.fo-auth-card {
  width: min(620px, 100%);
  margin: 0 auto;
  padding: 42px 46px;
  border: 1px solid var(--fo-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--fo-card-shadow);
}

.fo-auth-card--wide {
  width: min(820px, 100%);
}

.fo-auth-card__header {
  text-align: center;
  margin-bottom: 32px;
}

.fo-auth-eyebrow {
  margin: 0 0 8px;
  color: var(--fo-blue);
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.fo-auth-card h1,
.fo-plan-screen h1 {
  margin: 0;
  color: var(--fo-navy);
  font: 750 clamp(1.75rem, 3vw, 2.2rem) / 1.15 Lexend, Inter, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.01em;
}

.fo-auth-card__header > p:last-child,
.fo-plan-screen__header > p:last-child {
  max-width: 640px;
  margin: 14px auto 0;
  color: var(--fo-muted);
  font-size: 1.03rem;
  line-height: 1.65;
}

.fo-auth-card .alertBox,
.fo-auth-card .alertBox--error,
.fo-auth-card .alertBox--success {
  margin: 0 0 22px;
  border-radius: 6px;
}

/* Create-account form grid */
.fo-auth-form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 26px;
  margin: 0 !important;
  float: none !important;
  width: 100% !important;
}

.fo-auth-form-grid > .form-field {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 1 / -1;
}

.fo-auth-form-grid > .form-field:nth-child(1),
.fo-auth-form-grid > .form-field:nth-child(2),
.fo-auth-form-grid > .form-field[data-field-type="FirstName"],
.fo-auth-form-grid > .form-field[data-field-type="LastName"],
.fo-auth-form-grid > .form-field[id*="FormField_4"],
.fo-auth-form-grid > .form-field[id*="FormField_5"] {
  grid-column: auto;
}

.fo-account-form .form-label,
.fo-login-form .form-label,
.fo-auth-page .forgot-password-form .form-label,
.fo-auth-page .new-password-form .form-label {
  display: block;
  margin: 0 0 9px;
  color: #32445a;
  font-size: 0.98rem;
  font-weight: 700;
}

.fo-account-form .form-label small,
.fo-login-form .form-label small,
.fo-auth-page .new-password-form .form-label small {
  font-size: 0;
  color: var(--fo-red);
}

.fo-account-form .form-label small::after,
.fo-login-form .form-label small::after,
.fo-auth-page .new-password-form .form-label small::after {
  content: " *";
  font-size: 0.95rem;
}

.fo-account-form .form-input,
.fo-account-form .form-select,
.fo-account-form textarea,
.fo-login-form .form-input,
.fo-auth-page .forgot-password-form .form-input,
.fo-auth-page .new-password-form .form-input {
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 13px 16px;
  border: 1px solid #c5d0de;
  border-radius: 5px;
  background: #fff;
  color: var(--fo-ink);
  font: 500 1rem / 1.4 Inter, sans-serif;
  box-shadow: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  appearance: none;
}

.fo-account-form textarea {
  min-height: 110px;
}

.fo-account-form .form-input:focus,
.fo-account-form .form-select:focus,
.fo-account-form textarea:focus,
.fo-login-form .form-input:focus,
.fo-auth-page .forgot-password-form .form-input:focus,
.fo-auth-page .new-password-form .form-input:focus {
  border-color: var(--fo-blue);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(32, 120, 208, 0.14);
}

.fo-confirm-email-error {
  display: none;
  margin: 8px 0 0;
  color: #b4232b;
  font-size: 0.86rem;
  font-weight: 650;
}

.fo-confirm-email-error.is-visible {
  display: block;
}

/* Selected plan strip ($199/mo) */
.fo-auth-selected-plan {
  margin: 28px 0 20px;
  padding: 15px 18px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  border: 1px solid #c9daf0;
  border-radius: 7px;
  background: #f3f8fd;
}

.fo-auth-selected-plan span {
  color: var(--fo-muted);
  font-size: 0.82rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.fo-auth-selected-plan strong {
  color: var(--fo-navy);
  font-size: 1rem;
  font-family: Lexend, Inter, sans-serif;
}

.fo-auth-selected-plan a {
  color: var(--fo-blue);
  font-weight: 750;
  text-decoration: none;
}

.fo-auth-selected-plan a:hover {
  text-decoration: underline;
}

/* Legal acknowledgements */
.fo-legal-ack {
  margin: 8px 0 8px !important;
  padding: 0 !important;
  display: grid;
  gap: 14px;
}

.fo-legal-ack__item {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: start;
  margin: 0;
  color: var(--fo-muted);
  font-size: 0.9rem;
  line-height: 1.55;
  font-weight: 500;
  cursor: pointer;
}

.fo-legal-ack__item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--fo-navy);
  cursor: pointer;
}

.fo-legal-ack__item a {
  color: var(--fo-blue);
  font-weight: 700;
  text-decoration: none;
}

.fo-legal-ack__item a:hover {
  text-decoration: underline;
}

/* Primary CTA — FedOpp red */
.fo-auth-actions {
  margin: 26px 0 0 !important;
  padding: 0 !important;
  text-align: initial !important;
}

.fo-auth-submit,
.fo-plan-pay-button,
.fo-access-button {
  width: 100%;
  min-height: 52px;
  margin: 0 !important;
  padding: 14px 22px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: var(--fo-red) !important;
  color: #fff !important;
  font: 800 0.9rem / 1.2 Inter, sans-serif !important;
  letter-spacing: 0.04em;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.fo-auth-submit:hover,
.fo-plan-pay-button:hover,
.fo-access-button:hover {
  background: var(--fo-red-hover) !important;
  transform: translateY(-1px);
  color: #fff !important;
}

.fo-auth-alternate {
  margin: 22px 0 0;
  color: #8993a1;
  font-size: 1rem;
  text-align: center;
}

.fo-auth-alternate a,
.fo-login-meta a {
  color: var(--fo-red);
  font-weight: 750;
  text-decoration: none;
}

.fo-auth-alternate a:hover,
.fo-login-meta a:hover {
  text-decoration: underline;
}

.fo-login-form .form-field {
  margin: 0 0 22px;
}

.fo-login-meta {
  margin: -4px 0 22px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--fo-muted);
  font-size: 0.88rem;
}

.fo-auth-message {
  text-align: center;
}

.fo-auth-message h2 {
  color: var(--fo-navy);
  font: 700 1.35rem / 1.3 Lexend, Inter, sans-serif;
}

/* ---------------------------------------------------------------------------
   Plan screen (createaccount_thanks) — single $199/mo FEDOPP-199-MO
   --------------------------------------------------------------------------- */
.fo-plan-screen {
  width: min(1160px, 100%);
  margin: 0 auto;
  padding: 36px 0 20px;
}

.fo-plan-screen__header {
  margin-bottom: 36px;
  text-align: center;
}

.fo-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.fo-plan-grid--single {
  grid-template-columns: 1fr;
  max-width: 520px;
  margin-inline: auto;
}

.fo-billing-plan {
  position: relative;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--fo-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(16, 24, 32, 0.07);
}

.fo-billing-plan--featured {
  border: 2px solid var(--fo-red);
  box-shadow: 0 18px 42px rgba(16, 24, 32, 0.12);
}

.fo-billing-plan.is-selected {
  outline: 4px solid rgba(206, 45, 58, 0.12);
  border-color: var(--fo-red);
}

.fo-billing-plan__badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  padding: 7px 15px;
  border-radius: 999px;
  background: var(--fo-red);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
  white-space: nowrap;
  letter-spacing: 0.04em;
}

.fo-billing-plan__name {
  margin: 0 0 16px;
  color: var(--fo-navy);
  font: 750 1.12rem / 1.3 Lexend, Inter, sans-serif;
}

.fo-billing-plan__price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  color: var(--fo-navy);
}

.fo-billing-plan__price strong {
  font: 750 2.45rem / 1 Lexend, Inter, sans-serif;
}

.fo-billing-plan__price span {
  color: var(--fo-muted);
  font-size: 0.9rem;
}

.fo-billing-plan > p:not(.fo-billing-plan__name) {
  margin: 10px 0 0;
  color: var(--fo-muted);
}

.fo-billing-plan ul {
  margin: 24px 0 28px;
  padding: 0;
  flex: 1;
  list-style: none;
}

.fo-billing-plan li {
  position: relative;
  padding: 7px 0 7px 25px;
  color: #54677e;
  font-size: 0.95rem;
  line-height: 1.45;
}

.fo-billing-plan li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--fo-green);
  font-weight: 900;
}

.fo-plan-security-note {
  max-width: 780px;
  margin: 30px auto 0;
  padding: 18px 22px;
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: center;
  border: 1px solid #d6e3ef;
  border-radius: 8px;
  background: #fff;
  color: var(--fo-muted);
  text-align: center;
  font-size: 0.92rem;
  line-height: 1.5;
}

.fo-plan-security-note strong {
  color: var(--fo-navy);
  white-space: nowrap;
}

/* ---------------------------------------------------------------------------
   Stock forgot / new-password pages (until templates get fo-auth wrappers)
   --------------------------------------------------------------------------- */
body.page-type-forgotpassword .account,
body.page-type-getnewpassword .account {
  width: min(520px, calc(100% - 40px));
  margin: 48px auto 80px;
  padding: 40px 42px;
  border: 1px solid var(--fo-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--fo-card-shadow);
}

body.page-type-forgotpassword .account > p,
body.page-type-getnewpassword .account > p {
  color: var(--fo-muted);
  margin: 0 0 22px;
  line-height: 1.55;
}

body.page-type-forgotpassword .form-prefixPostfix-button--postfix,
body.page-type-forgotpassword .button--primary,
body.page-type-getnewpassword .button--primary {
  min-height: 52px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: var(--fo-red) !important;
  color: #fff !important;
  font: 800 0.88rem / 1.2 Inter, sans-serif !important;
  text-transform: uppercase;
}

body.page-type-forgotpassword .form-prefixPostfix {
  display: grid;
  gap: 14px;
}

body.page-type-forgotpassword .form-prefixPostfix .form-input {
  width: 100%;
  min-height: 56px;
  border: 1px solid #c5d0de;
  border-radius: 5px;
}

/* ---------------------------------------------------------------------------
   Optional cart / product polish (FEDOPP-199-MO purchase path)
   --------------------------------------------------------------------------- */
body.page-type-cart .cart,
body.page-type-product .productView {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

body.page-type-cart .cart-actions .button--primary,
body.page-type-cart [data-primary-checkout-button],
body.page-type-product .productView .button--primary,
body.page-type-product form[data-cart-item-add] .button--primary {
  background: var(--fo-red) !important;
  border-color: var(--fo-red) !important;
  color: #fff !important;
  font-family: Inter, sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

body.page-type-cart .cart-actions .button--primary:hover,
body.page-type-product .productView .button--primary:hover {
  background: var(--fo-red-hover) !important;
  border-color: var(--fo-red-hover) !important;
}

body.page-type-product .productView-product .productView-title,
body.page-type-cart .cart-item-name a {
  color: var(--fo-navy);
  font-family: Lexend, Inter, sans-serif;
}

body.page-type-product .productView-price .price--withoutTax,
body.page-type-cart .cart-item-value {
  color: var(--fo-navy);
  font-weight: 750;
}

/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 800px) {
  .fo-auth-page {
    padding-inline: 14px;
  }

  .fo-account-progress {
    margin-bottom: 32px;
  }

  .fo-auth-card {
    padding: 34px 22px;
  }

  .fo-auth-form-grid {
    grid-template-columns: 1fr;
  }

  .fo-auth-form-grid > .form-field:nth-child(1),
  .fo-auth-form-grid > .form-field:nth-child(2),
  .fo-auth-form-grid > .form-field[data-field-type="FirstName"],
  .fo-auth-form-grid > .form-field[data-field-type="LastName"],
  .fo-auth-form-grid > .form-field[id*="FormField_4"],
  .fo-auth-form-grid > .form-field[id*="FormField_5"] {
    grid-column: 1;
  }

  .fo-plan-grid {
    grid-template-columns: 1fr;
    max-width: 570px;
    margin-inline: auto;
  }

  .fo-billing-plan--featured {
    margin-top: 10px;
  }

  .fo-plan-security-note {
    flex-direction: column;
  }

  .fo-auth-selected-plan {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fo-login-meta {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  body.page-type-forgotpassword .account,
  body.page-type-getnewpassword .account {
    padding: 32px 22px;
  }
}

@media (max-width: 520px) {
  .fo-auth-logo {
    width: 185px;
    margin-bottom: 22px;
  }

  .fo-account-progress {
    width: 100%;
    margin-bottom: 26px;
  }

  .fo-account-progress li {
    gap: 8px;
  }

  .fo-account-progress li span {
    width: 30px;
    height: 30px;
  }

  .fo-account-progress::before {
    top: 14px;
  }

  .fo-account-progress li strong {
    font-size: 0.76rem;
  }

  .fo-auth-card h1,
  .fo-plan-screen h1 {
    font-size: 1.5rem;
  }

  .fo-auth-card__header > p:last-child,
  .fo-plan-screen__header > p:last-child {
    font-size: 0.94rem;
  }

  .fo-account-form .form-input,
  .fo-account-form .form-select,
  .fo-login-form .form-input {
    min-height: 52px;
  }

  .fo-plan-screen {
    padding-top: 24px;
  }

  .fo-legal-ack__item {
    font-size: 0.84rem;
  }
}
