/* A shared, connected sequence for the public transaction journeys. */
.raft-process {
  --process-ink: #172238;
  --process-muted: #596b84;
  --process-accent: #285bd0;
  --process-line: #c8d8f3;
  margin: 0;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid #d9e3f2;
  border-radius: 12px;
  background: #fff;
  color: var(--process-ink);
}
.raft-process-label {
  margin: 0 0 26px;
  color: var(--process-accent);
  font: 800 10px/1.5 Manrope, Arial, sans-serif;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.raft-process-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.raft-process-list > li { position: relative; min-width: 0; }
.raft-process-marker { position: relative; margin-bottom: 22px; }
.raft-process-number {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--process-line);
  border-radius: 50%;
  background: #edf3ff;
  color: var(--process-accent);
  font: 800 11px/1 Manrope, Arial, sans-serif;
  letter-spacing: .08em;
}
.raft-process-list > li:not(:last-child) .raft-process-marker::after {
  position: absolute;
  top: 21px;
  left: 58px;
  right: -16px;
  height: 1px;
  background: var(--process-line);
  content: "";
}
.raft-process-list > li:not(:last-child) .raft-process-marker::before {
  position: absolute;
  top: 10px;
  right: -20px;
  z-index: 1;
  color: var(--process-accent);
  content: "→";
  font: 20px/1 Arial, sans-serif;
}
.raft-process h3 {
  margin: 0 0 9px;
  color: var(--process-ink);
  font: 800 18px/1.3 Manrope, Arial, sans-serif;
  letter-spacing: -.025em;
}
.raft-process .raft-process-copy p {
  max-width: 42ch;
  margin: 0;
  color: var(--process-muted);
  font-size: 13px;
  line-height: 1.7;
}
.raft-purchase-process { margin-bottom: 26px; }
.raft-process-dark {
  --process-ink: #fff;
  --process-muted: #dbe7ff;
  --process-accent: #bbd1ff;
  --process-line: #89aee955;
  border-color: #89aee94d;
  background: #ffffff08;
}
.raft-process-dark .raft-process-number { background: #ffffff0d; }

/* Align the hero's two columns from the same top edge. */
.raft-pricing .raft-pricing-hero-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: start;
  gap: clamp(36px, 6vw, 76px);
}
.raft-pricing .raft-pricing-intro { padding-top: 0; border-top: 0; }
.raft-pricing .raft-pricing-intro p { margin: 0; max-width: 43ch; }
.raft-pricing .raft-pricing-jump { margin-top: 24px; }
.raft-home .outcome-foot { justify-content: flex-end; }
.raft-home .home-approach .raft-process { margin-top: 36px; }
.raft-start .availability.raft-visual-banner p,
.raft-start .availability-list span,
.raft-start .availability-list a { color: #dbe7ff; }
.raft-start .availability.raft-visual-banner .eyebrow { color: #bbd1ff; }

/* Share natural row heights so longer plan copy cannot collide with a price. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 701px) {
    .raft-pricing .raft-plan {
      grid-row: span 8;
      grid-template-rows: subgrid;
    }
    .raft-pricing .raft-plan-title { margin-bottom: 22px; }
    .raft-pricing .raft-plan-purpose { padding-bottom: 24px; }
    .raft-pricing .raft-price { padding-bottom: 24px; }
  }
}

@media (max-width: 700px) {
  .raft-process { padding: 24px 20px; }
  .raft-process-list { grid-template-columns: 1fr; gap: 28px; }
  .raft-process-list > li {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
  }
  .raft-process-marker { height: 100%; margin: 0; }
  .raft-process-list > li:not(:last-child) .raft-process-marker::after {
    top: 56px;
    bottom: -16px;
    left: 21px;
    right: auto;
    width: 1px;
    height: auto;
  }
  .raft-process-list > li:not(:last-child) .raft-process-marker::before {
    top: auto;
    bottom: -24px;
    left: 14px;
    right: auto;
    content: "↓";
  }
  .raft-process h3 { font-size: 16px; padding-top: 2px; }
  .raft-pricing .raft-pricing-hero-grid { display: block; }
  .raft-pricing .raft-pricing-intro { margin-top: 28px; }
}

/* The same connected process on every route's Journey section. */
.route-journey .journey-heading>p { color: #596b84; }
.route-journey .raft-process { position: relative; }
.sale-contact-choice { padding-block: 70px; scroll-margin-top: 20px; }
.sale-choice-heading { max-width: 760px; margin-bottom: 30px; }
.sale-choice-heading h2 { font-size: clamp(30px,3.3vw,46px); line-height: 1.16; letter-spacing: -.045em; margin: 0 0 14px; }
.sale-choice-heading>p:last-child, .sale-buyer-link { font-size: 14px; line-height: 1.7; color: #596b84; }
.sale-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.sale-choice-card { display: flex; flex-direction: column; align-items: start; padding: 28px; background: #fff; border: 1px solid #d9e3f2; border-radius: 12px; min-width: 0; }
.sale-choice-featured { background: #edf3ff; border-color: #b8cdfa; }
.sale-choice-card h3 { margin: 0 0 14px; font-size: 21px; line-height: 1.3; letter-spacing: -.035em; }
.sale-choice-card p { margin: 0 0 24px; color: #596b84; font-size: 13px; line-height: 1.7; }
.sale-choice-card a { display: flex; justify-content: space-between; gap: 16px; width: 100%; margin-top: auto; padding: 13px 15px; border-radius: 6px; background: #ecf2ff; color: #234eb7; font-size: 13px; font-weight: 700; text-decoration: none; }
.sale-choice-featured a { background: #285bd0; color: #fff; }
.sale-choice-card a:hover { filter: brightness(.95); }
.sale-buyer-link { margin: 24px 0 0; }
.sale-buyer-link a { color: #234eb7; font-weight: 700; }
@media (max-width: 820px) { .sale-choice-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .sale-contact-choice { padding-block: 58px; } .sale-choice-card { padding: 24px; } }

/* A compact vertical journey in the initial Find your start panel. */
.raft-process-compact { padding: 20px; }
.raft-process-compact .raft-process-label { margin-bottom: 20px; }
.raft-process-compact .raft-process-list { grid-template-columns: 1fr; gap: 24px; }
.raft-process-compact .raft-process-list > li { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: start; gap: 14px; }
.raft-process-compact .raft-process-marker { height: 100%; margin: 0; }
.raft-process-compact .raft-process-number { width: 36px; height: 36px; }
.raft-process-compact .raft-process-list > li:not(:last-child) .raft-process-marker::after { top: 44px; bottom: -12px; left: 17px; right: auto; width: 1px; height: auto; }
.raft-process-compact .raft-process-list > li:not(:last-child) .raft-process-marker::before { top: auto; bottom: -22px; left: 10px; right: auto; content: "↓"; }
.raft-process-compact h4 { margin: 6px 0 0; color: #172238; font: 700 13px/1.6 Manrope,Arial,sans-serif; }
