XML 65 R54.htm IDEA: XBRL DOCUMENT
v3.22.4

Summary of Significant Accounting Policies - Originated Loans and Allowance for Loan Losses (Details) | 12 Months Ended
--- | ---
Dec. 31, 2022
Originated Loans and Allowance for Loan Losses |
Non-accrual Status Collection Days Past Due | 90 days
Performing | Maximum |
Originated Loans and Allowance for Loan Losses |
Threshold for classification as performing loans | 90 days
Non-performing | Minimum |
Originated Loans and Allowance for Loan Losses |
Threshold for classification as performing loans | 90 days

X
- Definition Period of time past contractual due date after which loans are generally placed on non-accrual status. + References No definition available. + Details
Name: | cffi_NonaccrualStatusCollectionDaysPastDue
Namespace Prefix: | cffi_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Period of time past due which is used as a threshold for classification of loans as performing or non-performing. + References No definition available. + Details
Name: | cffi_ThresholdForClassificationAsPerformingLoan
Namespace Prefix: | cffi_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_AccountsNotesAndLoansReceivableLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

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

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
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: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |