/* Shared spacing fixes. This layer is declared before the existing theme layers. */
@layer ff-layout {
  #ff-files-main {
    --ff-section-space: 40px;
    --ff-layout-gap: 28px;
    --ff-page-gutter: 48px;
  }
  #ff-files-main :is(.services.section,.client-story,.way,.about,.best-friend-blueprint,.service-chapter,.service-app,.service-faq,.neighborhood-story,.will-note,.site-invitation) {
    padding-block: var(--ff-section-space) !important;
  }
  #ff-files-main :is(.chapter-layout,.hb-services-grid,.way-grid,.hb-blueprint-list,.contact-steps,.about-panel,.neighborhood-inner) {
    gap: var(--ff-layout-gap) !important;
  }
  #ff-files-main :is(.section-intro,.blueprint-intro,.app-intro,.faq-intro) {
    margin-bottom: 24px !important;
  }
  #ff-files-main :is(.chapter-story,.walk-rate-panel,.chapter-booking,.puppy-practice) {
    min-width: 0 !important;
    padding: 24px !important;
  }
  #ff-files-main :is(.chapter-story,.chapter-booking,.hb-roots-copy,.original-prose,.personal-reply) > p + p {
    margin-top: 16px !important;
  }
  #ff-files-main .original-prose p {
    margin-bottom: 0 !important;
  }
  #ff-files-main .original-prose p + p {
    margin-top: 18px !important;
  }
  #ff-files-main .hb-roots-chapter {
    min-height: 0 !important;
    height: auto !important;
    padding-block: 32px !important;
    column-gap: 36px !important;
  }
  #ff-files-main .hb-roots-copy {
    min-width: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }
  #ff-files-main .hb-roots-copy h2 {
    margin-bottom: 18px !important;
  }
  #ff-files-main .contact-opening {
    padding-block: 32px !important;
  }
  #ff-files-main .contact-opening-inner {
    width: calc(100% - var(--ff-page-gutter) * 2) !important;
    max-width: 1040px !important;
    margin-inline: auto !important;
    grid-template-columns: minmax(0,.85fr) minmax(0,1fr) !important;
    grid-template-rows: auto !important;
    grid-auto-rows: auto !important;
    height: auto !important;
    gap: 48px !important;
    align-items: center !important;
    min-height: 0 !important;
  }
  #ff-files-main .contact-opening-photo {
    justify-self: center !important;
    margin: 0 !important;
    max-width: 100% !important;
  }
  #ff-files-main .contact-opening-copy {
    width: 100% !important;
    min-width: 0 !important;
    padding: 24px 0 !important;
  }
  #ff-files-main .hoboken-application {
    padding: 32px var(--ff-page-gutter) 40px !important;
  }
  #ff-files-main .ff-app-shell {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 880px !important;
    padding: 32px !important;
    margin-inline: auto !important;
    min-width: 0 !important;
  }
  #ff-files-main .ff-app-heading {
    display: grid !important;
    grid-template-columns: 46px minmax(0,1fr) !important;
    align-items: center !important;
    justify-content: start !important;
    gap: 20px !important;
    height: auto !important;
    min-height: 46px !important;
    margin: 0 0 28px !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  #ff-files-main .ff-app-mark {
    display: block !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    margin: 0 !important;
    flex: 0 0 46px !important;
    justify-self: start !important;
  }
  #ff-files-main .ff-app-heading h2 {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 34px !important;
    line-height: 1.2 !important;
    letter-spacing: -.025em !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-align: left !important;
  }
  #ff-files-main .friend-form {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 22px 24px !important;
  }
  #ff-files-main .ff-field {
    min-width: 0 !important;
    margin: 0 !important;
  }
  #ff-files-main .ff-field-wide,
  #ff-files-main .form-submit-row,
  #ff-files-main .form-status {
    grid-column: 1 / -1 !important;
  }
  #ff-files-main .ff-field label {
    display: block !important;
    margin: 0 0 8px !important;
    line-height: 1.45 !important;
  }
  #ff-files-main .ff-field :is(input,select,textarea) {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    line-height: 1.5 !important;
    padding: 12px 14px !important;
  }
  #ff-files-main .ff-field :is(input,select) {
    min-height: 48px !important;
  }
  #ff-files-main :is(.ff-field-error,.form-status):empty {
    display: none !important;
  }
  #ff-files-main :is(.ff-field-error,.ff-field-help) {
    margin: 8px 0 0 !important;
    line-height: 1.5 !important;
  }
  #ff-files-main .form-submit-row {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin-top: 4px !important;
  }
  #ff-files-main .form-footnote {
    margin: 0 !important;
    line-height: 1.5 !important;
  }
  #ff-files-main .service-guidance {
    margin-top: 24px !important;
    padding: 20px 16px !important;
  }
  #ff-files-main .form-success {
    padding: 24px !important;
    line-height: 1.65 !important;
    white-space: pre-line !important;
  }
  #ff-files-main .contact-followup {
    width: calc(100% - var(--ff-page-gutter) * 2) !important;
    max-width: 1040px !important;
    margin-inline: auto !important;
    padding: 0 0 40px !important;
  }
  #ff-files-main .personal-reply {
    margin: 0 auto 32px !important;
  }
  #ff-files-main .contact-how {
    padding-block: 28px !important;
  }
  #ff-files-main .services-opening {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
    gap: 48px !important;
    padding-block: 32px !important;
  }
  #ff-files-main .services-banner-copy {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #ff-files-main .services-banner-photo {
    max-width: 100% !important;
    justify-self: end !important;
  }
  @media (max-width:1049px) {
    #ff-files-main { --ff-page-gutter: 28px; --ff-layout-gap: 24px; --ff-section-space: 36px; }
    #ff-files-main .contact-opening-inner { gap: 28px !important; }
    #ff-files-main .ff-app-shell { padding: 28px !important; }
    #ff-files-main .ff-app-heading h2 { font-size: 30px !important; }
    #ff-files-main .services-opening { gap: 28px !important; }
  }
  @media (max-width:699px) {
    #ff-files-main { --ff-page-gutter: 20px; --ff-layout-gap: 22px; --ff-section-space: 32px; }
    #ff-files-main :is(.chapter-story,.walk-rate-panel,.chapter-booking,.puppy-practice) {
      padding: 20px !important;
    }
    #ff-files-main :is(.section-intro,.blueprint-intro,.app-intro,.faq-intro) {
      margin-bottom: 20px !important;
    }
    #ff-files-main .hb-roots-chapter {
      padding-block: 24px !important;
      row-gap: 20px !important;
    }
    #ff-files-main .contact-opening { padding-block: 24px !important; }
    #ff-files-main .contact-opening-inner {
      grid-template-columns: minmax(0,1fr) !important;
      gap: 24px !important;
    }
    #ff-files-main .contact-opening-copy { padding: 0 !important; }
    #ff-files-main .hoboken-application {
      padding: 24px 14px 32px !important;
    }
    #ff-files-main .ff-app-shell { padding: 24px 18px !important; }
    #ff-files-main .ff-app-heading {
      grid-template-columns: 44px minmax(0,1fr) !important;
      gap: 12px !important;
      margin-bottom: 26px !important;
      min-height: 44px !important;
    }
    #ff-files-main .ff-app-mark {
      width: 44px !important;
      height: 44px !important;
      min-width: 44px !important;
      flex-basis: 44px !important;
    }
    #ff-files-main .ff-app-heading h2 {
      font-size: clamp(20px,5.8vw,30px) !important;
      line-height: 1.25 !important;
    }
    #ff-files-main .friend-form {
      grid-template-columns: minmax(0,1fr) !important;
      gap: 20px !important;
    }
    #ff-files-main .ff-field :is(input,select,textarea) {
      font-size: 16px !important;
    }
    #ff-files-main .form-submit-row {
      align-items: stretch !important;
      flex-direction: column !important;
      gap: 12px !important;
    }
    #ff-files-main .form-submit { width: 100% !important; }
    #ff-files-main .service-guidance { padding: 18px 14px !important; }
    #ff-files-main .contact-followup { padding-bottom: 32px !important; }
    #ff-files-main .contact-how { padding-block: 24px !important; }
    #ff-files-main .contact-steps { gap: 24px !important; }
    #ff-files-main .form-success { padding: 20px !important; }
    #ff-files-main .services-opening {
      grid-template-columns: minmax(0,1fr) !important;
      gap: 24px !important;
      padding-block: 24px !important;
    }
  }
  @media (max-width:359px) {
    #ff-files-main .hoboken-application { padding-inline: 10px !important; }
    #ff-files-main .ff-app-shell { padding-inline: 14px !important; }
    #ff-files-main .ff-app-heading { gap: 10px !important; }
  }
}
@layer ff-layout {
  #ff-files-main .feline-brand-link { color: inherit !important; text-decoration: underline !important; text-underline-offset: .18em !important; }
}
