/* Balanced phone typography; no page-scale or zoom overrides. */
@layer ff-mobile-balance {
  #ff-files-main img[data-hoboken-puppy-photo] {
    object-position: 50% 54% !important;
  }
  @media (max-width: 699px) {
    #ff-files-main {
      --hb-body: 18px !important;
      font-size: 18px !important;
    }
    #ff-files-main p:not(:where(.eyebrow,.contact-eyebrow,.chapter-promise,.price-amount,.price-unit,.care-subtitle,.about-subhead,.founder-introduction,.story-turn,.hb-note-promise,.ff-field-error,.ff-field-help,.form-footnote,.review-family,.review-location,.feline-family-label)) {
      font-size: 18px !important;
      line-height: 1.55 !important;
    }
    #ff-files-main :is(.puppy-benefit-fact,.puppy-benefit-meaning,.service-pros li,.faq-answer,.training-scope,.app-feature p) {
      font-size: 18px !important;
      line-height: 1.55 !important;
    }
    #ff-files-main :is(.eyebrow,.contact-eyebrow,.review-family,.review-location,.feline-family-label) {
      font-size: 17px !important;
      line-height: 1.45 !important;
    }
    #ff-files-main h2:not(:where(#application-title,#friendship-caption)) {
      font-size: clamp(29px,7.7vw,32px) !important;
      line-height: 1.18 !important;
    }
    #ff-files-main.home-page #services-title span {
      font-size: inherit !important;
      line-height: inherit !important;
    }
    #ff-files-main h3 {
      font-size: 24px !important;
      line-height: 1.25 !important;
    }
    #ff-files-main.home-page :is(.need h3,.way-item h3) {
      font-size: 22px !important;
      line-height: 1.25 !important;
    }
    #ff-files-main.home-page .hb-service-heading h3 {
      font-size: 28px !important;
      line-height: 1.18 !important;
    }
    #ff-files-main.home-page #hero-title {
      font-size: clamp(37px,10.2vw,42px) !important;
      line-height: 1.08 !important;
    }
    #ff-files-main.home-page #hero-title span {
      font-size: inherit !important;
      line-height: inherit !important;
    }
    #ff-files-main.services-page .services-banner-copy h1 {
      font-size: clamp(33px,9vw,38px) !important;
      line-height: 1.12 !important;
    }
    #ff-files-main.services-page .chapter-promise {
      font-size: 26px !important;
      line-height: 1.25 !important;
    }
    #ff-files-main.services-page .puppy-benefits strong {
      font-size: 24px !important;
      line-height: 1.25 !important;
    }
    #ff-files-main :is(.button,.text-link,.chapter-link) {
      font-size: 17px !important;
      line-height: 1.4 !important;
      min-height: 44px !important;
    }
    #ff-files-main.contact-page .ff-field label {
      font-size: 17px !important;
      line-height: 1.45 !important;
    }
    #ff-files-main.contact-page .ff-field :is(input,select,textarea) {
      font-size: 17px !important;
      line-height: 1.5 !important;
    }
    #ff-files-main.contact-page .ff-field :is(input,select) {
      min-height: 48px !important;
    }
    #ff-files-main :is(.ff-field-help,.ff-field-error,.form-footnote) {
      font-size: 17px !important;
      line-height: 1.5 !important;
    }
    #ff-files-main.home-page :is(.need,.way-item) {
      padding-block: 12px !important;
    }
    #ff-files-main.home-page :is(.need h3,.way-item h3) {
      margin-bottom: 6px !important;
    }
    #ff-files-main.home-page .hero-banner {
      min-height: 0 !important;
      height: auto !important;
      aspect-ratio: 4 / 3 !important;
      max-height: 440px !important;
    }
    /* Phone composition: retain the whole portrait; copy follows the image. */
    #ff-files-main.services-page .services-banner-photo {
      display: block !important;
      width: 100% !important;
      height: auto !important;
      min-height: 0 !important;
      max-height: none !important;
      aspect-ratio: 2 / 3 !important;
      object-fit: contain !important;
      object-position: center !important;
      -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 94%,transparent 100%) !important;
      mask-image: linear-gradient(to bottom,#000 0%,#000 94%,transparent 100%) !important;
    }
    #ff-files-main.services-page .services-banner-copy {
      margin: 0 auto !important;
      padding: 16px 0 0 !important;
    }
    #ff-files-main.home-page :is(.friendship,.friendship-surface) {
      height: clamp(320px,92vw,400px) !important;
      min-height: 0 !important;
    }
    #ff-files-main.home-page .friendship-copy h2 {
      font-size: clamp(34px,9vw,40px) !important;
      line-height: 1.1 !important;
    }
    #ff-files-main.services-page #puppy-care .chapter-visual {
      height: auto !important;
      aspect-ratio: 1.2 !important;
      min-height: 0 !important;
    }
    #ff-files-footer :is(.footer-summary,.footer-tagline,.footer-family p,.footer-reach>p,.hb-footer-region p) {
      font-size: 17px !important;
      line-height: 1.5 !important;
    }
    #ff-files-footer :is(.footer-links a,.footer-email) {
      font-size: 17px !important;
      line-height: 1.45 !important;
      white-space: normal !important;
      overflow-wrap: anywhere !important;
    }
    #ff-files-footer .footer-legal {
      font-size: 13.5px !important;
      line-height: 1.5 !important;
    }
  }
}

/* Phone header branding and compact contact follow-up. */
@layer ff-mobile-balance {
  @media (max-width:699px) {
    #ff-files-header .header-inner {width:calc(100% - 32px)!important;min-height:80px!important;padding:8px 0!important;gap:12px!important}
    #ff-files-header .site-brand {gap:10px!important}
    #ff-files-header .header-brand-logo {width:56px!important;height:62px!important;flex:0 0 56px!important}
    #ff-files-header .header-brand-type {font-size:24px!important;line-height:1.1!important;white-space:nowrap!important}
    #ff-files-header .header-brand-type span {font-size:11px!important;line-height:1.2!important;margin-top:5px!important}
    #ff-files-main.contact-page .contact-how {padding:0!important}
    #ff-files-main.contact-page .contact-how>.wrap {width:100%!important;max-width:none!important;padding:20px 18px!important;border-radius:22px!important;box-sizing:border-box!important}
    #ff-files-main.contact-page .how-heading {display:block!important;margin:0 0 16px!important;padding:0!important}
    #ff-files-main.contact-page .how-heading h2 {font-size:28px!important;line-height:1.18!important;margin:0 0 6px!important}
    #ff-files-main.contact-page .how-heading p {font-size:18px!important;line-height:1.5!important;margin:0!important}
    #ff-files-main.contact-page .contact-steps {display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important;margin:0!important;padding:0!important;border:0!important;list-style:none!important}
    #ff-files-main.contact-page .contact-steps>li {display:block!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;background:none!important}
    #ff-files-main.contact-page .contact-steps>li::before {display:none!important}
    #ff-files-main.contact-page .ff-approved-step-copy {display:flow-root!important;min-height:0!important;height:auto!important;min-width:0!important;margin:0!important;padding:0!important;text-align:left!important}
    #ff-files-main.contact-page .ff-approved-step-copy>.ff-approved-icon-art {display:block!important;float:left!important;width:48px!important;height:48px!important;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0 12px 0 0!important}
    #ff-files-main.contact-page .ff-approved-step-copy>.ff-approved-art-necklace {width:60px!important;height:60px!important;margin:0 6px 0 -6px!important}
    #ff-files-main.contact-page .ff-approved-step-copy>.ff-approved-icon-art>.ff-approved-svg {width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
    #ff-files-main.contact-page .ff-approved-step-copy>h3 {min-height:0!important;height:auto!important;width:auto!important;margin:0 0 4px!important;font-size:22px!important;line-height:1.2!important}
    #ff-files-main.contact-page .ff-approved-step-copy>p {min-height:0!important;width:auto!important;max-width:none!important;margin:0!important;font-size:18px!important;line-height:1.5!important}
  }
  @media (max-width:359px) {
    #ff-files-header .header-inner {min-height:74px!important;gap:10px!important}
    #ff-files-header .site-brand {gap:8px!important}
    #ff-files-header .header-brand-logo {width:50px!important;height:55px!important;flex-basis:50px!important}
    #ff-files-header .header-brand-type {font-size:22px!important}
  }
  @media (min-width:400px) and (max-width:699px) {
    #ff-files-header .header-inner {min-height:84px!important}
    #ff-files-header .header-brand-logo {width:60px!important;height:66px!important;flex-basis:60px!important}
    #ff-files-header .header-brand-type {font-size:26px!important}
  }
}


/* Shared phone text roles for copy outside paragraph elements. */
@layer ff-mobile-balance {
  @media (max-width:699px) {
    #ff-files-main :is(.trust-item span,.hb-service-qualifier,.price-unit,.training-step) {
      font-size:16px!important;line-height:1.5!important;
    }
    #ff-files-main :is(.about-subhead,.training-concerns li,.faq-list summary,.faq-list summary span) {
      font-size:18px!important;line-height:1.5!important;
    }
    #ff-files-main .walk-rate-panel dt {font-size:18px!important;line-height:1.5!important}
    #ff-files-main .walk-rate-panel dd span {font-size:16px!important;line-height:1.5!important}
    #ff-files-main .walking-perks dt,#ff-files-main .walking-perks dt span {
      font-size:23px!important;line-height:1.25!important;
    }
    #ff-files-main.contact-page :is(.personal-reply>a,.care-requirement dd,.care-requirement span) {
      font-size:16px!important;line-height:1.5!important;
    }
    #ff-files-main.contact-page .ff-approved-step-copy>h3 {
      font-size:23px!important;line-height:1.25!important;
    }
    #ff-files-main.contact-page .how-heading h2 {font-size:29px!important}
    #ff-files-main .hb-photo-credit,#ff-files-main .hb-photo-credit a {
      font-size:12px!important;line-height:1.4!important;
    }
    #ff-files-footer .footer-family a span {font-size:16px!important;line-height:1.5!important}
    #ff-files-footer :is(.hb-region-limited h3,.hb-region-zips span) {
      font-size:14px!important;line-height:1.5!important;
    }
    #ff-files-header .services-section-nav {overflow:hidden!important}
    #ff-files-header .services-nav-inner {
      display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
      justify-content:flex-start!important;width:calc(100% - 32px)!important;
      max-width:none!important;margin-inline:auto!important;padding:0!important;
      gap:20px!important;overflow-x:auto!important;overscroll-behavior-inline:contain!important;
      scrollbar-width:none!important;
    }
    #ff-files-header .services-nav-inner::-webkit-scrollbar {display:none!important}
    #ff-files-header .services-nav-inner a {
      display:inline-flex!important;flex:0 0 auto!important;align-items:center!important;
      width:auto!important;min-width:0!important;min-height:48px!important;height:auto!important;
      padding:6px 0!important;font-size:16px!important;line-height:1.3!important;
      white-space:nowrap!important;text-align:left!important;
    }
  }
}