/* FT spacing system — shared rhythm for Home + internal pages */

:root {
  --ft-shell-max: 1320px;
  --ft-gutter: clamp(20px, 3vw, 48px);
  --ft-section-y: clamp(72px, 8vw, 120px);
  --ft-section-y-compact: clamp(48px, 6vw, 84px);
}

.ft-shell,
.ft-home-hero-inner,
.ft-home-manifesto-inner {
  width: calc(100% - (2 * var(--ft-gutter)));
  max-width: var(--ft-shell-max);
  margin-inline: auto;
  box-sizing: border-box;
}

.ft-home-hero-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ft-home-manifesto,
.ft-home-services,
.ft-home-projects,
.ft-frequency-section,
.ft-home-contact-wrap,
.ft-page-section {
  padding-top: var(--ft-section-y) !important;
  padding-bottom: var(--ft-section-y) !important;
}

.ft-formula-section {
  padding-top: var(--ft-section-y-compact) !important;
  padding-bottom: var(--ft-section-y) !important;
}

.ft-page-hero {
  padding-top: clamp(78px, 8vw, 126px) !important;
  padding-bottom: clamp(66px, 7vw, 108px) !important;
}

.ft-page-section > .ft-shell,
.ft-home-services > .ft-shell,
.ft-home-projects > .ft-shell,
.ft-frequency-section > .ft-shell,
.ft-home-contact-wrap > .ft-shell,
.ft-formula-section > .ft-shell {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.ft-section-heading,
.ft-home-services-head,
.ft-projects-intro {
  margin-bottom: clamp(38px, 5vw, 68px) !important;
}

.ft-home-manifesto-foot {
  margin-top: clamp(36px, 5vw, 64px) !important;
}

.ft-generic-content {
  width: calc(100% - (2 * var(--ft-gutter))) !important;
  max-width: 1120px !important;
  padding-top: var(--ft-section-y-compact) !important;
  padding-bottom: var(--ft-section-y-compact) !important;
}

.ft-generic-content > :first-child { margin-top: 0 !important; }
.ft-generic-content > :last-child { margin-bottom: 0 !important; }

.ft-site-footer {
  padding-top: clamp(64px, 7vw, 104px) !important;
  padding-bottom: 24px !important;
}

.ft-site-footer-bottom {
  margin-top: clamp(44px, 6vw, 72px) !important;
}

@media (max-width: 849px) {
  :root {
    --ft-gutter: 18px;
    --ft-section-y: clamp(62px, 10vw, 84px);
    --ft-section-y-compact: clamp(42px, 8vw, 64px);
  }

  .ft-page-hero {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  .ft-section-heading,
  .ft-home-services-head,
  .ft-projects-intro {
    margin-bottom: 34px !important;
  }
}

@media (max-width: 549px) {
  :root {
    --ft-gutter: 14px;
    --ft-section-y: 64px;
    --ft-section-y-compact: 42px;
  }

  .ft-home-manifesto,
  .ft-home-services,
  .ft-home-projects,
  .ft-frequency-section,
  .ft-home-contact-wrap,
  .ft-page-section {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  .ft-formula-section {
    padding-top: 42px !important;
    padding-bottom: 64px !important;
  }

  .ft-page-hero {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  .ft-site-footer { padding-top: 56px !important; }
}
