/* Public conversion page. Its visual language follows the authenticated B12 app. */
.landing-page {
  --landing-ink: #16342a;
  --landing-deep: #123b2a;
  --landing-green: #126b54;
  --landing-green-soft: #e8f3eb;
  --landing-paper: #fffdf8;
  --landing-muted: #5f7167;
  --landing-line: #d8e4dd;
  --landing-gold: #e8c76c;
  color: var(--landing-ink);
  overflow: hidden;
  border: 1px solid rgba(18, 59, 42, .1);
  border-radius: 22px;
  background: var(--landing-paper);
  box-shadow: 0 20px 55px rgba(20, 32, 28, .1);
}

.pwa-mode #landingPage {
  display: none !important;
}

/* The public landing page is a viewport surface; the signed-in app keeps the shared shell. */
body:has(#landingPage:not([hidden])) {
  padding: 0;
  overflow-x: clip;
}

body:has(#landingPage:not([hidden])) .shell {
  width: 100%;
  max-width: none;
  margin: 0;
}

body:has(#landingPage:not([hidden])) .landing-page {
  min-height: 100vh;
  min-height: 100dvh;
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  box-shadow: none;
}

.landing-page, .landing-page button { font-family: "Aptos", "Bahnschrift", "Segoe UI", sans-serif; }
.landing-nav { min-height: 76px; padding: 16px 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 0; background: var(--landing-paper); border-bottom: 1px solid var(--landing-line); }
.landing-brand { display: inline-flex; align-items: center; flex: 0 1 auto; min-width: 0; gap: 10px; color: var(--landing-ink); text-decoration: none; }
.landing-brand-name { display: grid; gap: 2px; font-size: 15px; font-weight: 900; letter-spacing: -.035em; line-height: 1; }
.landing-brand-name small { color: #6c7e73; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.landing-nav-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 18px; min-width: 0; white-space: nowrap; }
.landing-text-link, .landing-login-link, .landing-footer a, .landing-footer-login { color: var(--landing-ink); font: inherit; text-decoration: none; }
.landing-login-link, .landing-footer-login { width: auto; min-width: 0; min-height: 0; height: auto; margin: 0; border: 0; padding: 0; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; line-height: 1.2; transform: none; }
.landing-nav .landing-login-link, .landing-footer .landing-footer-login { appearance: none; -webkit-appearance: none; background: transparent; border: 0; box-shadow: none; }
.landing-text-link { font-size: 13px; font-weight: 700; }
.landing-login-link { display: inline-flex; align-items: center; flex: 0 0 auto; font-size: 13px; font-weight: 800; white-space: nowrap; }
.landing-page button.landing-login-link:hover:not(:disabled),
.landing-page button.landing-footer-login:hover:not(:disabled) {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.landing-page button.landing-login-link,
.landing-page button.landing-login-link:focus:not(:focus-visible),
.landing-page button.landing-footer-login {
  appearance: none;
  -webkit-appearance: none;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}
.landing-text-link:hover, .landing-login-link:hover, .landing-footer a:hover { color: var(--landing-green); }
.landing-nav-cta, .landing-primary-cta, .landing-secondary-cta, .landing-inline-cta { min-height: 0; height: auto; border: 0; cursor: pointer; font: inherit; font-weight: 800; line-height: 1.2; }
.landing-nav-cta { padding: 11px 15px; border-radius: 6px; color: #fff; background: var(--landing-green); font-size: 12px; }
.landing-nav-cta:hover, .landing-primary-cta:hover { background: #0d5744; }
.landing-brand:focus-visible, .landing-text-link:focus-visible, .landing-login-link:focus-visible, .landing-nav-cta:focus-visible, .landing-primary-cta:focus-visible, .landing-secondary-cta:focus-visible, .landing-inline-cta:focus-visible { outline: 3px solid rgba(200, 141, 44, .6); outline-offset: 3px; }

.landing-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .95fr); align-items: center; gap: 58px; min-height: 555px; padding: 78px 66px 70px; background: #f2f6f1; }
.landing-hero-copy { max-width: 535px; }
.landing-eyebrow { margin: 0 0 18px; color: #4e6a5d; font-size: 10px; font-weight: 900; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.landing-hero h1, .landing-section h2, .landing-final-cta h2 { margin: 0; color: var(--landing-deep); font-size: clamp(40px, 4.3vw, 62px); font-weight: 850; letter-spacing: -.055em; line-height: 1.02; }
.landing-hero-lede { max-width: 475px; margin: 24px 0 0; color: #52665c; font-size: 17px; line-height: 1.65; }
.landing-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 30px; }
.landing-primary-cta { display: inline-flex; align-items: center; justify-content: center; padding: 16px 20px; border-radius: 6px; color: #fff; background: var(--landing-green); font-size: 14px; }
.landing-offer-note { color: #65776c; font-size: 12px; font-weight: 700; }
.landing-proof-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 25px; color: #52665c; font-size: 12px; font-weight: 700; }

.landing-hero-visual { display: grid; place-items: center; min-height: 390px; }
.landing-application-sheet { width: min(100%, 465px); padding: 29px 31px 25px; border: 1px solid #cfdcd2; background: #fff; box-shadow: 0 16px 32px rgba(20, 48, 36, .1); }
.landing-sheet-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid #e2eae4; color: var(--landing-green); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.landing-sheet-heading b { color: #52665c; font-size: 9px; letter-spacing: 0; text-transform: none; }
.landing-application-sheet h2 { margin: 26px 0 5px; color: var(--landing-deep); font-size: 27px; font-weight: 850; letter-spacing: -.045em; }
.landing-sheet-company { margin: 0; color: #6a7b70; font-size: 11px; }
.landing-sheet-rule { height: 1px; margin: 23px 0 12px; background: #e2eae4; }
.landing-sheet-row { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid #edf1ee; color: #687a6e; font-size: 11px; }
.landing-sheet-row b { color: var(--landing-ink); font-weight: 800; text-align: right; }
.landing-sheet-letter { margin-top: 18px; padding: 15px; background: #f4f8f5; color: #53675b; font-size: 11px; line-height: 1.5; }
.landing-sheet-letter span { display: block; color: var(--landing-deep); font-weight: 800; }
.landing-sheet-letter p { margin: 8px 0 10px; }
.landing-sheet-letter i { display: block; width: 92%; height: 4px; margin-top: 6px; border-radius: 2px; background: #c9d9ce; }
.landing-sheet-letter i.landing-sheet-line-short { width: 53%; }
.landing-sheet-footer { margin-top: 20px; color: var(--landing-green); font-size: 10px; font-weight: 800; }

.landing-trust-strip { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 16px 38px; color: #60756a; background: #edf5ef; border-bottom: 1px solid #dce9e0; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.landing-trust-intro { color: var(--landing-deep); }
.landing-trust-steps { display: flex; align-items: center; gap: 29px; }
.landing-trust-step { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.landing-trust-step b { color: var(--landing-green); font-size: 10px; }

.landing-section { padding: 90px 66px; }
.landing-workflow-section { background: var(--landing-paper); }
.landing-section-heading { max-width: 650px; }
.landing-section h2 { font-size: clamp(35px, 4vw, 55px); }
.landing-section-heading > p:last-child { max-width: 500px; margin: 22px 0 0; color: var(--landing-muted); font-size: 15px; line-height: 1.65; }
.landing-process { max-width: 720px; margin: 48px 0 0; padding: 0; list-style: none; }
.landing-process-step { display: grid; grid-template-columns: 54px 1fr; gap: 20px; padding: 22px 0; border-top: 1px solid var(--landing-line); }
.landing-process-step:last-child { border-bottom: 1px solid var(--landing-line); }
.landing-process-number { color: var(--landing-green); font-size: 12px; font-weight: 900; letter-spacing: .08em; }
.landing-process-step h3 { margin: 0; color: var(--landing-deep); font-size: 19px; font-weight: 850; letter-spacing: -.025em; }
.landing-process-step p { max-width: 480px; margin: 7px 0 0; color: var(--landing-muted); font-size: 13px; line-height: 1.55; }

.landing-proof-section { padding-top: 0; background: var(--landing-paper); }
.landing-proof-card { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; align-items: center; padding: 54px; border-radius: 10px; color: #fff; background: var(--landing-deep); }
.landing-proof-card .landing-eyebrow { color: #d9e9dd; }
.landing-proof-card h2 { color: #fff; }
.landing-proof-card h2 strong { color: var(--landing-gold); }
.landing-proof-card-copy > p:not(.landing-eyebrow) { max-width: 395px; margin: 23px 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.65; }
.landing-secondary-cta { padding: 0; color: #fff; background: transparent; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.landing-secondary-cta:hover { color: var(--landing-gold); }
.landing-review-panel { padding: 24px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
.landing-review-header { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 17px; border-bottom: 1px solid rgba(255,255,255,.14); }
.landing-review-header > span:first-child { color: var(--landing-gold); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.landing-review-pill { color: #d9e9dd; font-size: 10px; }
.landing-review-item { display: flex; align-items: flex-start; gap: 12px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.landing-review-item:last-child { padding-bottom: 0; border-bottom: 0; }
.landing-review-icon { display: grid; flex: 0 0 auto; place-items: center; width: 23px; height: 23px; border-radius: 50%; color: var(--landing-deep); background: #d7ebdc; font-size: 9px; font-weight: 900; }
.landing-review-item strong, .landing-review-item small { display: block; }
.landing-review-item strong { color: #fff; font-size: 12px; }
.landing-review-item small { margin-top: 4px; color: rgba(255,255,255,.62); font-size: 10px; line-height: 1.45; }

.landing-details-section { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 0; background: var(--landing-paper); }
.landing-detail-card { padding: 30px; border: 1px solid var(--landing-line); background: #fff; }
.landing-detail-card--price { background: #edf6ef; }
.landing-detail-card h3 { margin: 0; color: var(--landing-deep); font-size: 22px; font-weight: 850; letter-spacing: -.04em; }
.landing-detail-card p { max-width: 380px; margin: 12px 0 20px; color: var(--landing-muted); font-size: 13px; line-height: 1.6; }
.landing-detail-card a, .landing-inline-cta { color: var(--landing-green); background: transparent; font-size: 12px; font-weight: 850; text-decoration: none; }
.landing-inline-cta:hover, .landing-detail-card a:hover { text-decoration: underline; text-underline-offset: 4px; }
.landing-page button.landing-inline-cta,
.landing-page button.landing-secondary-cta {
  appearance: none;
  -webkit-appearance: none;
  width: auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  margin: 0;
  border: 0 !important;
  border-radius: 0;
  padding: 0;
  background: transparent !important;
  box-shadow: none !important;
  transform: none;
}
.landing-page button.landing-inline-cta:hover:not(:disabled),
.landing-page button.landing-secondary-cta:hover:not(:disabled),
.landing-page button.landing-inline-cta:active:not(:disabled),
.landing-page button.landing-secondary-cta:active:not(:disabled) {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
.landing-final-cta { padding: 88px 30px; color: #fff; text-align: center; background: var(--landing-green); }
.landing-final-cta .landing-eyebrow { color: #d9e9dd; }
.landing-final-cta h2 { max-width: 720px; margin: 0 auto; color: #fff; font-size: clamp(39px, 5vw, 62px); }
.landing-final-cta > p:not(.landing-eyebrow) { max-width: 470px; margin: 22px auto 28px; color: rgba(255,255,255,.8); font-size: 15px; line-height: 1.6; }
.landing-final-cta .landing-primary-cta { color: var(--landing-deep); background: var(--landing-gold); }
.landing-final-cta small { display: block; margin-top: 13px; color: rgba(255,255,255,.66); font-size: 11px; }
.landing-footer { display: flex; justify-content: space-between; gap: 20px; padding: 25px 34px; color: #6c7e73; background: var(--landing-paper); font-size: 11px; }
.landing-footer > span:last-child { display: flex; gap: 22px; }

@media (max-width: 840px) {
  .landing-hero { grid-template-columns: 1fr; padding: 64px 38px 52px; }
  .landing-hero-copy { max-width: 640px; }
  .landing-hero-visual { min-height: 390px; margin-top: 8px; }
  .landing-proof-card { grid-template-columns: 1fr; gap: 38px; padding: 44px; }
}

@media (max-width: 620px) {
  .landing-page { border: 0; border-radius: 0; margin: 0; }
  .landing-nav { min-height: 66px; gap: 12px; padding: 12px 16px; }
  .landing-brand-name { font-size: 14px; }
  .landing-brand-name small, .landing-text-link { display: none; }
  .landing-nav-actions { gap: 10px; }
  .landing-login-link { font-size: 12px; }
  .landing-nav-cta { min-height: 44px; padding: 10px 11px; font-size: 11px; white-space: nowrap; }
  .landing-hero { min-height: 0; padding: 51px 23px 35px; }
  .landing-hero h1 { font-size: 42px; }
  .landing-hero-lede { font-size: 15px; }
  .landing-hero-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  .landing-primary-cta { width: 100%; min-height: 52px; }
  .landing-offer-note { text-align: center; }
  .landing-proof-row { display: grid; gap: 9px; margin-top: 24px; }
  .landing-hero-visual { min-height: 0; margin: 30px 0 0; }
  .landing-application-sheet { width: 100%; padding: 22px 19px 20px; }
  .landing-application-sheet h2 { font-size: 22px; }
  .landing-trust-strip { display: block; padding: 16px 23px; font-size: 9px; }
  .landing-trust-steps { justify-content: space-between; gap: 7px; margin-top: 12px; }
  .landing-trust-step { gap: 5px; }
  .landing-section { padding: 72px 23px; }
  .landing-section h2 { font-size: 37px; }
  .landing-process { margin-top: 32px; }
  .landing-process-step { grid-template-columns: 37px 1fr; gap: 12px; padding: 18px 0; }
  .landing-process-step h3 { font-size: 17px; }
  .landing-proof-section { padding-top: 0; }
  .landing-proof-card { padding: 34px 23px; border-radius: 0; margin: 0 -23px; }
  .landing-proof-card h2 { font-size: 37px; }
  .landing-review-panel { padding: 17px; }
  .landing-details-section { grid-template-columns: 1fr; gap: 10px; }
  .landing-detail-card { padding: 27px; }
  .landing-final-cta { padding: 82px 23px; }
  .landing-footer { align-items: flex-start; flex-direction: column; padding: 22px 20px; font-size: 10px; }
  .landing-footer > span:last-child { gap: 15px; }
}

@media (max-width: 360px) {
  .landing-nav { padding-inline: 12px; }
  .landing-nav-actions { gap: 8px; }
  .landing-nav-cta { padding-inline: 9px; font-size: 10px; }
}

/* Restrained blob treatment for the registration CTAs. The label remains
   above the animated shapes so the action stays readable and accessible. */
.landing-svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.landing-page .blob-btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 6px;
  text-decoration: none;
  transition: transform .32s ease, box-shadow .32s ease;
}
.landing-page .blob-btn .blob-btn__label { position: relative; z-index: 2; }
.landing-page .blob-btn .blob-btn__inner { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.landing-page .blob-btn .blob-btn__blobs { position: absolute; inset: 0; filter: url("#goo"); }
.landing-page .blob-btn .blob-btn__blob {
  position: absolute;
  top: 50%;
  width: 42%;
  aspect-ratio: 1;
  margin-top: -21%;
  border-radius: 50%;
  background: #0d5744;
  transform: translate3d(0, 125%, 0) scale(1.15);
  transition: transform .75s cubic-bezier(.2,.8,.2,1);
}
.landing-page .blob-btn .blob-btn__blob:nth-child(1) { left: -9%; transition-delay: 0s; }
.landing-page .blob-btn .blob-btn__blob:nth-child(2) { left: 19%; transition-delay: .08s; }
.landing-page .blob-btn .blob-btn__blob:nth-child(3) { left: 47%; transition-delay: .16s; }
.landing-page .blob-btn .blob-btn__blob:nth-child(4) { left: 75%; transition-delay: .24s; }
.landing-page .blob-btn:hover, .landing-page .blob-btn:focus-visible { transform: translateY(-1px); box-shadow: 0 7px 16px rgba(20, 48, 36, .16); }
.landing-page .blob-btn:hover .blob-btn__blob, .landing-page .blob-btn:focus-visible .blob-btn__blob { transform: translate3d(0, 15%, 0) scale(1.15); }
.landing-page .landing-final-cta .blob-btn .blob-btn__blob { background: #e3b04f; }
.landing-page .landing-secondary-cta.blob-btn, .landing-page .landing-inline-cta.blob-btn {
  min-height: 42px;
  padding: 10px 16px;
  color: #fff;
  background: var(--landing-green) !important;
  text-decoration: none;
}
.landing-page .landing-inline-cta.blob-btn { color: #fff; }
.landing-page .landing-secondary-cta.blob-btn:hover, .landing-page .landing-inline-cta.blob-btn:hover { color: #fff; text-decoration: none; }
.landing-page .landing-final-cta .blob-btn { color: var(--landing-deep); background: var(--landing-gold); }

@media (prefers-reduced-motion: reduce) {
  .landing-page .blob-btn, .landing-page .blob-btn .blob-btn__blob { transition: none; }
}
