XML 14 R48.htm IDEA: XBRL DOCUMENT v2.4.1.9
LOANS AND LEASES RECEIVABLE (Schedule of Impaired Loans by Class of Loans) (Details) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 6 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2014
Dec. 31, 2013
Jun. 30, 2014
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded $ 21,994us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment   $ 21,994us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment   $ 26,673us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
Unpaid Principal Balance With No Related Allowance Recorded 22,009us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance [1]   22,009us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance [1]   26,688us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance [1]
Recorded Investment With an Allowance Recorded 1,423us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment   1,423us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment   1,596us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
Unpaid Principal Balance With an Allowance Recorded 1,423us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance [1]   1,423us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance [1]   1,596us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance [1]
Related Allowance 460us-gaap_ImpairedFinancingReceivableRelatedAllowance   460us-gaap_ImpairedFinancingReceivableRelatedAllowance   483us-gaap_ImpairedFinancingReceivableRelatedAllowance
Total Recorded Investment 23,417us-gaap_ImpairedFinancingReceivableRecordedInvestment   23,417us-gaap_ImpairedFinancingReceivableRecordedInvestment   28,269us-gaap_ImpairedFinancingReceivableRecordedInvestment
Total Unpaid Principal Balance 23,432us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance [1]   23,432us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance [1]   28,284us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance [1]
Average Recorded Investment 24,598us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 22,307us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 25,816us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 22,998us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment  
Interest Income Recognized 79us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod 23us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod 223us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod 40us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod  
Residential one-to-four Family          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With an Allowance Recorded 154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  164us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
Unpaid Principal Balance With an Allowance Recorded 154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]   154us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]   164us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]
Related Allowance 36us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  36us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  41us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
Total Recorded Investment 154us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  154us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
  164us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
Total Unpaid Principal Balance 154us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]   154us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]   164us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
[1]
Average Recorded Investment 156us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
244us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
158us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
255us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
 
Interest Income Recognized 1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ResidentialOneToFourFamilyFinancingReceivableMember
 
Commercial business          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 3,170us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  3,170us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  4,032us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 3,170us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   3,170us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   4,032us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]
Recorded Investment With an Allowance Recorded 176us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  176us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  201us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
Unpaid Principal Balance With an Allowance Recorded 176us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   176us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   201us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]
Related Allowance 18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  38us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
Total Recorded Investment 3,346us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  3,346us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
  4,233us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
Total Unpaid Principal Balance 3,346us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   3,346us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]   4,233us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
[1]
Average Recorded Investment 3,538us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
4,723us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
3,766us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
4,858us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
 
Interest Income Recognized 16us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
8us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
29us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
20us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialBusinessFinancingReceivableMember
 
Commercial real estate          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 563us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  563us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  983us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 563us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   563us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   983us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]
Recorded Investment With an Allowance Recorded 24us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  24us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  25us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
Unpaid Principal Balance With an Allowance Recorded 24us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   24us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   25us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]
Related Allowance 4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
Total Recorded Investment 587us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  587us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
  1,008us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
Total Unpaid Principal Balance 587us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   587us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]   1,008us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
[1]
Average Recorded Investment 617us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
1,042us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
747us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
1,139us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
 
Interest Income Recognized 1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
4us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
5us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateOtherReceivableMember
 
Commercial multi-family real estate          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 6,158us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  6,158us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  6,296us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 6,158us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]   6,158us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]   6,296us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
Total Recorded Investment 6,158us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  6,158us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
  6,296us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
Total Unpaid Principal Balance 6,158us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]   6,158us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]   6,296us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
[1]
Average Recorded Investment 6,190us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
27us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
6,225us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
27us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
 
Interest Income Recognized 0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
70us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_CommercialRealEstateMultiFamilyFinancingReceivableMember
 
Agricultural real estate          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 6,096us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  6,096us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  10,945us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 6,096us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]   6,096us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]   10,945us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]
Related Allowance 0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
Total Recorded Investment 6,096us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  6,096us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
  10,945us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
Total Unpaid Principal Balance 6,096us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]   6,096us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]   10,945us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
[1]
Average Recorded Investment 7,948us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
11,259us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
8,947us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
11,567us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
 
Interest Income Recognized 45us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
91us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalRealEstateFinancingReceivableMember
 
Agricultural business          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 5,435us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  5,435us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  3,481us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 5,435us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   5,435us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   3,481us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]
Recorded Investment With an Allowance Recorded 178us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  178us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  316us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
Unpaid Principal Balance With an Allowance Recorded 178us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   178us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   316us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]
Related Allowance 31us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  31us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  15us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
Total Recorded Investment 5,613us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  5,613us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
  3,797us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
Total Unpaid Principal Balance 5,613us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   5,613us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]   3,797us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
[1]
Average Recorded Investment 4,490us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
3,636us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
4,259us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
3,795us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
 
Interest Income Recognized 0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_AgriculturalBusinessFinancingReceivableMember
 
Consumer direct          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 5us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  5us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  10us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   25us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]
Recorded Investment With an Allowance Recorded 62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
Unpaid Principal Balance With an Allowance Recorded 62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]
Related Allowance 61us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  61us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  31us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
Total Recorded Investment 67us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  67us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
  57us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
Total Unpaid Principal Balance 82us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   82us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]   72us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
[1]
Average Recorded Investment 72us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
8us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
67us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
12us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
 
Interest Income Recognized 0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerDirectFinancingReceivableMember
 
Consumer home equity          
Loans and Leases Receivable, Impaired [Line Items]          
Recorded Investment With No Related Allowance Recorded 567us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  567us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  926us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
Unpaid Principal Balance With No Related Allowance Recorded 567us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   567us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   926us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]
Recorded Investment With an Allowance Recorded 829us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  829us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  843us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
Unpaid Principal Balance With an Allowance Recorded 829us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   829us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   843us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]
Related Allowance 310us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  310us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  354us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
Total Recorded Investment 1,396us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  1,396us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
  1,769us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
Total Unpaid Principal Balance 1,396us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   1,396us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]   1,769us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
[1]
Average Recorded Investment 1,587us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
1,368us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
1,647us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
1,345us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
 
Interest Income Recognized $ 16us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
$ 10us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
$ 31us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
$ 14us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= hffc_ConsumerHomeEquityFinancingReceivableMember
 
[1] Represents the borrower's loan obligation, gross of any previously charged-off amounts.