/* Block refinements: preserve the page composition, content and form contract. */
.factor-home .factor-section h2 { text-wrap: balance; }
.factor-home .factor-trust-strip > p {
  margin-block: 0 !important;
  min-height: 64px;
}
.factor-home .factor-trust-strip > p::before { top: calc(50% - 23px); }

/* Keep the product photograph visible while making its overlaid text legible. */
.factor-home .factor-product-asset-tracker::after {
  background: linear-gradient(180deg, #fffffff5 0%, #ffffffe0 26%, #ffffff30 55%, transparent 72%);
}
.factor-home .factor-product-asset-tracker p { color: #35475d; }

/* A clear reading order for each fleet type, with visible numbered markers. */
.factor-home .factor-audiences { gap: 64px; }
.factor-home .factor-audience-list { border-left: 0; padding-left: 0; }
.factor-home .factor-audience-row {
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 8px 20px;
  padding: 24px 0;
  align-items: start;
}
.factor-home .factor-audience-row .factor-step-number {
  display: grid;
  place-items: center;
  grid-row: 1 / 3;
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: #edf3ff;
  color: #1746d1;
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
}
.factor-home .factor-audience-row h3 { font-size: 21px; line-height: 1.3; }
.factor-home .factor-audience-row p:not(.factor-step-number) {
  grid-column: 2;
  max-width: 420px;
  font-size: 17px;
  line-height: 1.5;
}

/* Give each setup step enough room for its heading and supporting sentence. */
.factor-home .factor-steps { gap: 16px; margin-top: 32px !important; }
.factor-home .factor-step {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 24px;
  min-width: 0;
  border: 1px solid #dfe7f2;
  border-radius: 18px;
  background: #f6f9fd;
}
.factor-home .factor-step::after { display: none; }
.factor-home .factor-step > .factor-step-number {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 13px;
  font-size: 16px;
}
.factor-home .factor-step h3 {
  margin-top: 20px !important;
  font-size: 19px;
  line-height: 1.3;
  letter-spacing: -.025em;
}
.factor-home .factor-step > p:last-child {
  margin-top: 10px !important;
  font-size: 16px;
  line-height: 1.55;
}
.factor-home .factor-workflow { margin-top: 40px !important; padding-top: 32px; }
.factor-home .factor-integrations {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px !important;
}
.factor-home .factor-integrations p {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 68px;
  padding: 14px 12px;
  border: 1px solid #dfe7f2;
  border-radius: 12px;
  background: white;
  color: #34465c;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
}

/* Subtle definition for pricing cards; keep all prices and benefits unchanged. */
.factor-home .factor-plan { border: 1px solid #dce7f1; box-shadow: 0 8px 24px #0b162c06; }
.factor-home .factor-plan-core { border-color: transparent; box-shadow: 0 12px 28px #2455ff20; }
.factor-home .factor-plan .wp-element-button { border-radius: 12px; }

/* Readable controls without iOS focus zoom, and a clear keyboard focus state. */
.factor-home .factor-form input:not([type="checkbox"]):not([type="hidden"]),
.factor-home .factor-form select,
.factor-home .factor-form textarea {
  font-size: 16px !important;
  line-height: 1.4 !important;
}
.factor-home .factor-form input:focus-visible,
.factor-home .factor-form select:focus-visible,
.factor-home .factor-form textarea:focus-visible {
  outline: 2px solid #2455ff !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #2455ff12;
}
.factor-home .factor-form .t-checkbox__control { align-items: flex-start; }

/* A readable shared footer, with separate breathing room for legal links. */
.factor-footer {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 16px 32px;
  padding: 32px 0;
}
.factor-footer .wp-block-site-logo img { width: 210px; }
.factor-footer > .factor-legal:not(:last-child) {
  order: initial;
  justify-self: end;
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  white-space: normal;
}
.factor-footer > .factor-legal a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-inline: 4px;
  color: #44546b;
}
.factor-footer > .factor-legal a:hover { color: #1746d1; text-decoration: underline; text-underline-offset: 4px; }
.factor-footer a:focus-visible { outline: 2px solid #2455ff; outline-offset: 4px; border-radius: 4px; }
.factor-footer > .factor-legal:last-child {
  order: initial;
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
  padding: 20px 0 0;
  border: 0;
  border-top: 1px solid #dfe7f2;
  color: #56657a;
  font-size: 14px;
  line-height: 1.6;
  white-space: normal;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .factor-home .factor-integrations { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .factor-home .factor-audiences { gap: 28px; }
  .factor-home .factor-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .factor-home .factor-hero-badges { font-size: 12px; gap: 10px; line-height: 1.4; }
  .factor-home .factor-hero-badges span { gap: 7px; }
  .factor-home .factor-hero-badges span + span { padding-left: 10px; }
  .factor-home .factor-audience-row { grid-template-columns: 42px minmax(0, 1fr); gap: 6px 14px; padding: 22px 0; }
  .factor-home .factor-audience-row .factor-step-number { width: 40px; height: 40px; font-size: 16px; border-radius: 12px; }
  .factor-home .factor-audience-row h3 { font-size: 20px; }
  .factor-home .factor-audience-row p:not(.factor-step-number) { font-size: 16px; }
  .factor-home .factor-steps { grid-template-columns: 1fr; gap: 12px; }
  .factor-home .factor-step { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 6px 16px; padding: 20px; }
  .factor-home .factor-step h3 { margin-top: 0 !important; font-size: 18px; }
  .factor-home .factor-step > p:last-child { grid-column: 2; margin-top: 0 !important; font-size: 16px; }
  .factor-home .factor-integrations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px !important; }
  .factor-home .factor-integrations p { min-height: 68px; padding: 12px; font-size: 14px; }
  .factor-footer { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 32px 0; }
  .factor-footer > .wp-block-template-part { width: 100%; }
  .factor-footer .factor-contacts { gap: 8px; }
  .factor-footer .factor-contacts a { min-height: 44px; display: inline-flex; align-items: center; }
  .factor-footer > .factor-legal:not(:last-child) { width: 100%; padding-top: 16px; border-top: 1px solid #dfe7f2; font-size: 14px; }
  .factor-footer > .factor-legal a { min-height: 44px; }
  .factor-footer > .factor-legal:last-child { border: 0; padding: 0; font-size: 13px; }
}
