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