XML 38 R76.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Allowance For Loan Losses (Schedule Of Aging Analysis Of Accruing And Non-Accruing Loans) (Details) (USD $) In Thousands, unless otherwise specified | Dec. 31, 2014 | Dec. 31, 2013
--- | --- | ---
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | $ 2,626,094 us-gaap_FinancingReceivableRecordedInvestmentCurrent | $ 2,564,342 us-gaap_FinancingReceivableRecordedInvestmentCurrent
30 - 59 days past due | 7,734 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue | 10,453 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
60 - 89 days past due | 1,239 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue | 1,071 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
Over 90 days past due | 423 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue | 436 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
Impaired Financing Receivable, Recorded Investment, Past Due | 1,270 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue | 7,534 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue
Non-accrual | 15,306 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus | 22,361 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
Loans, Total | 2,652,066 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount | 2,606,197 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Residential Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,286,306 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,196,000 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 4,949 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 4,965 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 758 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 667 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 169 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 231 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Non-accrual | 2,394 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 2,587 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Loans, Total | 1,294,576 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,204,450 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Home equity - junior liens |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 144,788 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 144,932 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 563 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 880 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
60 - 89 days past due | 155 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Over 90 days past due | 30 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 42 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Non-accrual | 68 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 236 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Loans, Total | 145,604 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 146,090 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Commercial And Industrial |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 131,073 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 146,268 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 243 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 80 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Over 90 days past due | 210 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 1,115 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,954 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Loans, Total | 132,641 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 148,302 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Commercial Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,022,158 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,028,108 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 1,371 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 3,440 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
60 - 89 days past due | 210 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 273 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 109 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 1,270 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 7,534 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Non-accrual | 11,729 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 17,584 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Loans, Total | 1,036,738 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,057,048 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Consumer Loan |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 39,286 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 45,523 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 291 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 794 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 114 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 36 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 14 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 49 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Loans, Total | 39,705 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 46,402 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
DDA Overdrafts |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,483 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 3,511 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
30 - 59 days past due | 317 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 374 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
60 - 89 days past due | 2 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 15 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 5 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Loans, Total | 2,802 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 3,905 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Originated Loans |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,376,849 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 2,255,141 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
30 - 59 days past due | 5,811 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 6,217 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
60 - 89 days past due | 993 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 517 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Over 90 days past due | 410 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 282 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Non-accrual | 9,735 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 15,317 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Loans, Total | 2,393,798 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 2,277,474 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Originated Loans | Residential Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,200,177 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,096,911 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 4,235 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 4,123 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 758 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 495 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 169 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 231 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Non-accrual | 2,259 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,905 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Loans, Total | 1,207,598 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,103,665 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Originated Loans | Home equity - junior liens |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 142,624 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 141,967 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 561 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 880 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
60 - 89 days past due | 155 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Over 90 days past due | 30 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 42 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Non-accrual | 68 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 236 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Loans, Total | 143,438 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 143,125 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Originated Loans | Commercial And Industrial |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 120,950 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 128,015 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 100 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Over 90 days past due | 210 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 78 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 79 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Loans, Total | 121,338 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 128,094 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Originated Loans | Commercial Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 877,437 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 852,090 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 479 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 668 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Non-accrual | 7,330 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 13,097 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Loans, Total | 885,246 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 865,855 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Originated Loans | Consumer Loan |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 33,178 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 32,647 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 119 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 172 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 78 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 7 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 1 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 4 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Loans, Total | 33,376 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 32,830 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Originated Loans | DDA Overdrafts |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,483 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 3,511 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
30 - 59 days past due | 317 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 374 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
60 - 89 days past due | 2 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 15 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 5 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Loans, Total | 2,802 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 3,905 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Acquired Loans |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 249,245 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 309,201 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
30 - 59 days past due | 1,923 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 4,236 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
60 - 89 days past due | 246 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 554 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Over 90 days past due | 13 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 154 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Impaired Financing Receivable, Recorded Investment, Past Due | 1,270 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 7,534 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Non-accrual | 5,571 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 7,044 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Loans, Total | 258,268 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 328,723 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Acquired Loans | Residential Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 86,129 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 99,089 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 714 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 842 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 172 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Non-accrual | 135 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 682 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Loans, Total | 86,978 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 100,785 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Acquired Loans | Home equity - junior liens |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,164 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 2,965 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 2 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Loans, Total | 2,166 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 2,965 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Acquired Loans | Commercial And Industrial |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 10,123 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 18,253 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 143 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 80 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 1,037 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,875 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Loans, Total | 11,303 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 20,208 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Acquired Loans | Commercial Real Estate |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 144,721 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 176,018 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 892 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 2,772 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
60 - 89 days past due | 210 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 273 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 109 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Impaired Financing Receivable, Recorded Investment, Past Due | 1,270 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 7,534 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Non-accrual | 4,399 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 4,487 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Loans, Total | 151,492 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 191,193 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Acquired Loans | Consumer Loan |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 6,108 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 12,876 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 172 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 622 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 36 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 29 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 13 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 45 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Loans, Total | 6,329 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 13,572 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Acquired Loans | DDA Overdrafts |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current |  | 0 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
30 - 59 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Impaired Financing Receivable, Recorded Investment, Past Due | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 chco_ImpairedFinancingReceivableRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Non-accrual | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Loans, Total | $ 0 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | $ 0 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember

X
- Definition Impaired Financing Receivable, Recorded Investment, Past Due + References No definition available. + Details
Name: | chco_ImpairedFinancingReceivableRecordedInvestmentPastDue
Namespace Prefix: | chco_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are less than 60 days past due but more than 29 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are less than 90 days past due but more than 59 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are current. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentCurrent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Financing receivables that are equal to or greater than 90 days past due. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7A -URI http://asc.fasb.org/extlink&oid=28368275&loc=SL6953401-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Recorded investment in financing receivables that are on nonaccrual status as of the balance sheet date. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 7 -Subparagraph (d) -URI http://asc.fasb.org/extlink&oid=28368275&loc=d3e5111-111524 + Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentPastDueLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount before allowance of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Includes deferred interest and fees, undisbursed portion of loan balance, unamortized costs and premiums and discounts from face amounts. Excludes loans and leases covered under loss sharing agreements. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 45 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=28367877&loc=d3e4428-111522 + Details
Name: | us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Details
Name: | us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=chco_AcquiredLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis=chco_OriginatedLoansMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=chco_DemandDepositAccountOverdraftsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_CommercialLoanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_CommercialRealEstateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ConsumerLoanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_HomeEquityMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis=us-gaap_ResidentialRealEstateMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |