XML 15 R48.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 | Mar. 31, 2015 | Dec. 31, 2014
--- | --- | ---
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | $ 2,606,134 us-gaap_FinancingReceivableRecordedInvestmentCurrent | $ 2,626,094 us-gaap_FinancingReceivableRecordedInvestmentCurrent
30 - 59 days past due | 7,701 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue | 7,734 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue
60 - 89 days past due | 687 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue | 1,239 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue
Over 90 days past due | 383 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue | 423 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 1,383 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue | 1,270 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue
Non-accrual | 16,183 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus | 15,306 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
Total | 2,632,471 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount | 2,652,066 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Residential Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,294,841 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,286,306 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 5,276 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 4,949 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 597 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 758 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 245 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 169 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Non-accrual | 2,299 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 2,394 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Total | 1,303,258 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,294,576 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Home equity - junior lien [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 142,949 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 144,788 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 557 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 563 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
60 - 89 days past due | 71 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 155 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Over 90 days past due | 1 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 30 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Non-accrual | 92 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 68 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Total | 143,670 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 145,604 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Commercial And Industrial [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 120,393 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 131,073 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 558 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 243 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Over 90 days past due | 45 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 210 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 0 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 3,346 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,115 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Total | 124,342 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 132,641 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Commercial Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,006,799 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,022,158 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 934 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,371 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 210 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 1,383 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,270 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Non-accrual | 10,446 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 11,729 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Total | 1,019,562 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,036,738 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Consumer Loan [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 38,164 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 39,286 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 164 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 291 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 16 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 114 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 92 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 14 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / 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
Total | 38,436 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 39,705 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Demand Deposit Account Overdrafts [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,988 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2,483 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
30 - 59 days past due | 212 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 317 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
60 - 89 days past due | 3 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Over 90 days past due | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / 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
Total | 3,203 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2,802 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Noncommercial Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 1,488,567 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember | 1,482,687 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember
Originated Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,360,162 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 2,376,849 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
30 - 59 days past due | 5,015 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 5,811 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
60 - 89 days past due | 445 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 993 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Over 90 days past due | 158 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 410 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Non-accrual | 11,818 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 9,735 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Total | 2,377,598 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember | 2,393,798 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember
Originated Loans [Member] | Residential Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 1,211,870 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,200,177 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 3,876 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 4,235 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 371 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 758 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 79 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 169 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Non-accrual | 2,213 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 2,259 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Total | 1,218,409 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 1,207,598 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Originated Loans [Member] | Home equity - junior lien [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 140,763 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 142,624 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 471 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 561 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
60 - 89 days past due | 71 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 155 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Over 90 days past due | 1 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 30 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Non-accrual | 92 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 68 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Total | 141,398 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 143,438 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Originated Loans [Member] | Commercial And Industrial [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 109,661 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 120,950 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 113 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 100 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 | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 210 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 2,924 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 78 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Total | 112,698 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 121,338 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Originated Loans [Member] | Commercial Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 862,315 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 877,437 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 299 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 479 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
Non-accrual | 6,589 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 7,330 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Total | 869,203 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 885,246 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Originated Loans [Member] | Consumer Loan [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 32,565 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 33,178 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 44 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 119 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 78 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 78 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 1 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / 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
Total | 32,687 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 33,376 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Originated Loans [Member] | Demand Deposit Account Overdrafts [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,988 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2,483 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
30 - 59 days past due | 212 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 317 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
60 - 89 days past due | 3 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2 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 | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / 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
Total | 3,203 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 2,802 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_OriginatedLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember
Acquired Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 245,972 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 249,245 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
30 - 59 days past due | 2,686 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 1,923 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
60 - 89 days past due | 242 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 246 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Over 90 days past due | 225 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 13 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 1,383 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 1,270 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Non-accrual | 4,365 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 5,571 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Total | 254,873 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember | 258,268 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember
Acquired Loans [Member] | Residential Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 82,971 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 86,129 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
30 - 59 days past due | 1,400 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 714 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
60 - 89 days past due | 226 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Over 90 days past due | 166 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
Non-accrual | 86 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 135 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Total | 84,849 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember | 86,978 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember
Acquired Loans [Member] | Home equity - junior lien [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 2,186 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 2,164 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
30 - 59 days past due | 86 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 2 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
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
Total | 2,272 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember | 2,166 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember
Acquired Loans [Member] | Commercial And Industrial [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 10,732 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 10,123 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
30 - 59 days past due | 445 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 143 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 | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Over 90 days past due | 45 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
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 0 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 0 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Non-accrual | 422 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 1,037 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Total | 11,644 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember | 11,303 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialLoanMember
Acquired Loans [Member] | Commercial Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 144,484 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 144,721 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
30 - 59 days past due | 635 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 892 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
60 - 89 days past due | 0 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 210 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 | 0 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due | 1,383 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 1,270 chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Non-accrual | 3,857 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 4,399 us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Total | 150,359 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember | 151,492 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_CommercialRealEstateMember
Acquired Loans [Member] | Consumer Loan [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 5,599 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 6,108 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
30 - 59 days past due | 120 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 172 us-gaap_FinancingReceivableRecordedInvestment30To59DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
60 - 89 days past due | 16 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 36 us-gaap_FinancingReceivableRecordedInvestment60To89DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Over 90 days past due | 14 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 13 us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue / 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
Total | 5,749 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember | 6,329 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember
Acquired Loans [Member] | Demand Deposit Account Overdrafts [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Current | 0 us-gaap_FinancingReceivableRecordedInvestmentCurrent / us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis = chco_AcquiredLoansMember / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember | 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
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
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
Performing [Member] | Residential Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 1,300,714 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 1,292,012 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Performing [Member] | Home equity - junior lien [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 143,577 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 145,506 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Performing [Member] | Consumer Loan [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 38,344 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 39,692 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Performing [Member] | Demand Deposit Account Overdrafts [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 3,203 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 2,802 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Performing [Member] | Noncommercial Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 1,485,838 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember | 1,480,012 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_PerformingFinancingReceivableMember
Nonperforming [Member] | Residential Real Estate [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 2,544 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 2,564 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ResidentialRealEstateMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Home equity - junior lien [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 93 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 98 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_HomeEquityMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Consumer Loan [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 92 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 13 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = us-gaap_ConsumerLoanMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Demand Deposit Account Overdrafts [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | 0 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | 0 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_DemandDepositAccountOverdraftsMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember
Nonperforming [Member] | Noncommercial Loans [Member] |  |
Financing Receivable, Recorded Investment, Past Due [Line Items] |  |
Total | $ 2,729 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember | $ 2,675 us-gaap_LoansAndLeasesReceivableGrossCarryingAmount / us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis = chco_NoncommercialLoansMember / us-gaap_InternalCreditAssessmentAxis = us-gaap_NonperformingFinancingReceivableMember

X
- Definition Financing Receivable, Acquired with Deteriorated Credit Quality, Recorded Investment, Past Due + References No definition available. + Details
Name: | chco_FinancingReceivableAcquiredwithDeterioratedCreditQualityRecordedInvestmentPastDue
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=35738203&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=35738203&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=35738203&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=35738203&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=35738203&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=chco_NoncommercialLoansMember
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: |

X
- Details
Name: | us-gaap_InternalCreditAssessmentAxis=us-gaap_NonperformingFinancingReceivableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_InternalCreditAssessmentAxis=us-gaap_PerformingFinancingReceivableMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |