/* Rules the element markup needs beyond the design stylesheet. */
.sp-landing .sp-lead { margin-top: 18px; }
.sp-landing .faq summary h3 { display: inline; font-size: inherit; }
/* Real logos: transparent grey PNGs on a padded canvas (300x200 rendition). */
.sp-landing .logostrip .slot--img { border: 0; height: auto; min-width: 0; }
.sp-landing .logostrip .slot--img img { display: block; height: 84px; width: auto; }
/* Real logos take the full row and spread out; placeholders keep the design's layout. */
.sp-landing .logostrip .lrow:has(.slot--img) { flex: 1 1 100%; justify-content: space-between; gap: 8px 12px; }
@media (max-width: 760px) {
  .sp-landing .logostrip .lrow:has(.slot--img) { justify-content: center; }
  .sp-landing .logostrip .slot--img img { height: 64px; }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .sp-landing .logostrip .slot--img img { filter: invert(1) brightness(.9); }
}
:root[data-theme="dark"] .sp-landing .logostrip .slot--img img { filter: invert(1) brightness(.9); }
.sp-landing .ai .ans .sp-ai-note { color: var(--ink-soft); font-size: 13.5px; margin: 0; }
/* IA gives .clients no bottom margin; the design puts 22px on the text. On
   pages where .clients has margin-bottom 22px the two collapse to the same. */
.sp-landing .clients + .lead-2 { margin-top: 22px; }

/* Landing form (sp_form): the design's .field styles, laid out as a card. */
.sp-landing .sp-form-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(22px, 3.4vw, 34px); }
/* align-items:end keeps inputs level when one label wraps to two lines */
.sp-landing .sp-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; align-items: end; }
.sp-landing .sp-fields .field--wide { grid-column: 1 / -1; }
@media (max-width: 680px) { .sp-landing .sp-fields { grid-template-columns: 1fr; } }
.sp-landing .sp-form .field input, .sp-landing .sp-form .field textarea { display: block; }
.sp-landing .sp-form .wpcf7-form-control-wrap { display: block; }
.sp-landing .sp-form .wpcf7-not-valid-tip { color: var(--brand-deep); font-size: 13px; margin-top: 5px; }
.sp-landing .sp-form .wpcf7-not-valid { border-color: var(--brand) !important; }
.sp-landing .sp-accept { font-size: 14px; color: var(--ink-soft); margin: 4px 0 16px; }
.sp-landing .sp-accept .wpcf7-list-item { margin: 0; }
.sp-landing .sp-accept input { margin: 0 8px 0 0; accent-color: var(--brand); }
.sp-landing .sp-submit .btn { width: 100%; }
.sp-landing .sp-form .wpcf7-spinner { display: block; margin: 10px auto 0; }
.sp-landing .sp-form .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 14px !important; border-radius: 11px; border: 1px solid var(--line-strong) !important; font-size: 14.5px; color: var(--ink); }
.sp-landing .sp-form .wpcf7 form.invalid .wpcf7-response-output,
.sp-landing .sp-form .wpcf7 form.unaccepted .wpcf7-response-output { border-color: var(--brand) !important; }
.sp-landing .sp-form .sp-req { color: var(--brand); margin-left: 3px; }
.sp-landing .sp-form .sp-req-note { font-size: 13px; color: var(--ink-soft); margin: 2px 0 10px; }
