/* ============================================================
   Pricing page — extends .landing-root tokens.
   Bloomberg-style: full-bleed sections, sharp corners, lila accents.
   Single "All In One" plan presented as a header row + feature
   matrix grouped by surface (Screener / Intermarket / Detail / …).
   ============================================================ */

.landing-root.pricing-page .pricing-hero {
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-start;
  padding: clamp(72px, 8vw, 112px) clamp(24px, 4vw, 48px) clamp(40px, 5vw, 56px);
  border-bottom: 1px solid var(--bd);
  max-width: none;
}
.landing-root.pricing-page .pricing-hero .l-hero-h1 {
  max-width: 16ch;
}
.landing-root.pricing-page .pricing-hero .l-hero-sub {
  max-width: 60ch;
}

/* Plan header row — "ALL IN ONE" left, price + CTA right */
.landing-root .pricing-plan-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 32px;
  padding: clamp(40px, 5vw, 64px) clamp(24px, 4vw, 48px);
  background: var(--bg-1);
  border-bottom: 1px solid var(--bd);
}
.landing-root .pricing-plan-meta {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.landing-root .pricing-plan-title {
  font-family: var(--display);
  font-size: clamp(28px, 3.6vw, 40px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--fg-0);
}
.landing-root .pricing-plan-tagline {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--fg-1);
  letter-spacing: 0.02em;
  max-width: 48ch;
}
.landing-root .pricing-plan-price-block {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  text-align: right;
}
.landing-root .pricing-plan-price-row {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.landing-root .pricing-plan-amount {
  font-family: var(--display);
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--fg-0);
}
.landing-root .pricing-plan-period {
  font-family: var(--mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fg-2);
}

/* Feature matrix — grouped by product surface */
.landing-root .pricing-features {
  padding: clamp(48px, 6vw, 72px) clamp(24px, 4vw, 48px);
  border-bottom: 1px solid var(--bd);
}
.landing-root .pricing-features-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: clamp(28px, 4vw, 40px);
  max-width: 60ch;
}
.landing-root .pricing-features-h2 {
  font-family: var(--display);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--fg-0);
}
.landing-root .pricing-features-sub {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--fg-1);
  line-height: 1.5;
}
.landing-root .pricing-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px;
  background: var(--bd);
  border: 1px solid var(--bd);
}
.landing-root .pricing-feature-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 22px 24px;
  background: var(--bg-0);
}
.landing-root .pricing-feature-group-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--bd);
}
.landing-root .pricing-feature-group-kicker {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--lila);
}
.landing-root .pricing-feature-group-count {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--fg-2);
}
.landing-root .pricing-feature-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 0;
  padding: 0;
}
.landing-root .pricing-feature-list li {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 10px;
  align-items: baseline;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.45;
  color: var(--fg-1);
}
.landing-root .pricing-feature-list li::before {
  content: '✓';
  color: var(--up);
  font-weight: 700;
}

/* Buy-now form — keep the submit button content-sized inside the
   flex columns it sits in (plan-price-block + closing l-cta). */
.landing-root .pricing-plan-form {
  margin: 0;
  padding: 0;
  display: inline-flex;
}

/* Three billing-period options stacked vertically in the plan-header
   right column. Each option is itself the <form> that posts the right
   price_id to /billing/checkout. */
.landing-root .pricing-plan-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  max-width: 360px;
  margin: 0;
  padding: 0;
}

/* Promo-code input above the three period options. One visible
   field — its value is mirrored into every form's hidden
   `promo_code` input by the tiny script at the end of the page. */
.landing-root .pricing-promo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 4px;
}
.landing-root .pricing-promo-label {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--fg-2);
}
.landing-root .pricing-promo-input {
  width: 100%;
  padding: 10px 12px;
  background: var(--bg-0);
  border: 1px solid var(--bd);
  border-radius: 0;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--fg-0);
  text-transform: uppercase;
  outline: none;
  transition: border-color 0.12s ease, background-color 0.12s ease;
}
.landing-root .pricing-promo-input::placeholder {
  color: var(--fg-2);
  text-transform: none;
  letter-spacing: 0.02em;
  font-weight: 400;
}
.landing-root .pricing-promo-input:hover {
  border-color: var(--bd-strong);
}
.landing-root .pricing-promo-input:focus {
  border-color: var(--lila);
  background: var(--bg-1);
}
.landing-root .pricing-period-option {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  background: var(--bg-0);
  border: 1px solid var(--bd);
  margin: 0;
  position: relative;
  transition: border-color 0.12s ease, background-color 0.12s ease;
}
.landing-root .pricing-period-option:hover {
  border-color: var(--lila);
}
.landing-root .pricing-period-option--popular {
  border-color: var(--lila);
  background: rgba(167, 139, 250, 0.06);
}
.landing-root .pricing-period-badge {
  position: absolute;
  top: -1px;
  right: -1px;
  padding: 3px 8px;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--bg-0);
  background: var(--lila);
}
.landing-root .pricing-period-savings {
  position: absolute;
  top: -1px;
  right: -1px;
  padding: 3px 8px;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--up);
  background: var(--bg-0);
  border: 1px solid var(--up);
}
.landing-root .pricing-period-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  text-align: left;
  min-width: 0;
}
.landing-root .pricing-period-label {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--fg-2);
}
.landing-root .pricing-period-price {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.015em;
  color: var(--fg-0);
}
.landing-root .pricing-period-price em {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--fg-2);
}
.landing-root .pricing-period-cta {
  padding: 8px 14px;
  font-size: 11px;
  white-space: nowrap;
}

/* Closing reaffirmation */
.landing-root.pricing-page .l-cta {
  padding: clamp(64px, 8vw, 96px) clamp(24px, 4vw, 48px);
}

/* Responsive */
@media (max-width: 720px) {
  .landing-root .pricing-plan-header {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .landing-root .pricing-plan-price-block,
  .landing-root .pricing-plan-price-row {
    align-items: flex-start;
    text-align: left;
  }
  .landing-root .pricing-plan-cta {
    width: 100%;
    justify-content: center;
  }
  .landing-root .pricing-plan-options {
    max-width: none;
  }
}
@media (max-width: 560px) {
  .landing-root.pricing-page .pricing-hero,
  .landing-root .pricing-plan-header,
  .landing-root .pricing-features,
  .landing-root.pricing-page .l-cta {
    padding-left: 16px;
    padding-right: 16px;
  }
}
