:root {
  --site-section-gap: 14px;
  --site-panel-padding: 14px;
  --site-control-gap: 10px;
}

/* Stable section rhythm: reveal animation must never change page geometry. */
.reveal {
  transform: none !important;
}

/* CMS pages: all top-level content panels follow one spacing contract. */
.wrap {
  padding-bottom: 0 !important;
}

.wrap > :is(section, article) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.wrap > :is(section, article) + :is(section, article) {
  margin-top: var(--site-section-gap) !important;
}

.wrap > :is(.hero, .card, .calculator, .lead, .prose, .legal-document) {
  padding: var(--site-panel-padding) !important;
}

.wrap > .breadcrumbs {
  margin-bottom: var(--site-section-gap);
}

.wrap > section:not(.hero):not(.card):not(.calculator):not(.lead) {
  display: flow-root;
}

footer.footer.footer-modern {
  margin-top: var(--site-section-gap) !important;
}

/* Landing page: the same distance between primary sections and tickers. */
main > section {
  margin-top: 0;
  margin-bottom: var(--site-section-gap);
}

main > :is(.hero, .lead, .trust-compact, .work-steps, .showcase-toggle, .deliveries-showcase) {
  padding: var(--site-panel-padding);
}

/* Forms use the same compact internal rhythm as the footer cards. */
.lead form,
.form-grid,
.calculator-grid {
  gap: var(--site-section-gap) var(--site-section-gap);
}

.lead-actions {
  align-self: stretch;
  align-content: end;
  gap: 6px;
  padding-top: 0 !important;
}

.lead-actions .consent-note,
.lead .consent-note {
  width: 100%;
  margin: 0;
  text-align: center;
}

.lead .form-status:empty {
  display: none;
}

/* The landing form has its own markup; keep it on the same contract. */
main .lead-form {
  padding: var(--site-panel-padding) !important;
}

main .lead-form .policy-consent {
  width: 100%;
  margin: 6px 0 0;
  text-align: center;
}

main .lead-form .form-note:empty {
  display: none;
}

@media (max-width: 760px) {
  :root {
    --site-section-gap: 12px;
    --site-panel-padding: 14px;
  }
}
