{
 "version": "2.2",
 "instance": {
  "cofs-20240331.htm": {
   "nsprefix": "cofs",
   "nsuri": "http://www.choiceone.bank/20240331",
   "dts": {
    "inline": {
     "local": [
      "cofs-20240331.htm"
     ]
    },
    "schema": {
     "local": [
      "cofs-20240331.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd",
      "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd",
      "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd",
      "https://xbrl.sec.gov/country/2023/country-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd"
     ]
    }
   },
   "keyStandard": 274,
   "keyCustom": 57,
   "axisStandard": 22,
   "axisCustom": 0,
   "memberStandard": 47,
   "memberCustom": 28,
   "hidden": {
    "total": 9,
    "http://fasb.org/us-gaap/2023": 5,
    "http://xbrl.sec.gov/dei/2023": 4
   },
   "contextCount": 425,
   "entityCount": 1,
   "segmentCount": 76,
   "elementCount": 605,
   "unitCount": 6,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 1924,
    "http://xbrl.sec.gov/dei/2023": 29
   },
   "report": {
    "R1": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information",
     "longName": "100000 - Document - Document And Entity Information",
     "shortName": "Document And Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited",
     "longName": "100010 - Statement - Consolidated Balance Sheets (Current Period Unaudited)",
     "shortName": "Consolidated Balance Sheets (Current Period Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:CashAndDueFromBanks",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:CashAndDueFromBanks",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals",
     "longName": "100060 - Statement - Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)",
     "shortName": "Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited",
     "longName": "100070 - Statement - Consolidated Statements of Income (Unaudited)",
     "shortName": "Consolidated Statements of Income (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:InterestAndFeeIncomeLoansAndLeases",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:InterestAndFeeIncomeLoansAndLeases",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
     "longName": "100080 - Statement - Consolidated Statements of Comprehensive Income (Loss) (Unaudited)",
     "shortName": "Consolidated Statements of Comprehensive Income (Loss) (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
     "longName": "100090 - Statement - Consolidated Statements of Changes in Shareholders' Equity (Unaudited)",
     "shortName": "Consolidated Statements of Changes in Shareholders' Equity (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "C_23f0b0fa-9ff2-44ce-b045-95bec05cc526",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_23f0b0fa-9ff2-44ce-b045-95bec05cc526",
      "name": "us-gaap:CommonStockSharesOutstanding",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals",
     "longName": "100100 - Statement - Consolidated Statements of Changes in Shareholders' Equity (Unaudited) (Parentheticals)",
     "shortName": "Consolidated Statements of Changes in Shareholders' Equity (Unaudited) (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:CommonStockDividendsPerShareDeclared",
      "unitRef": "U_UnitedStatesOfAmericaDollarsShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R8": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited",
     "longName": "100110 - Statement - Consolidated Statements of Cash Flows (Unaudited)",
     "shortName": "Consolidated Statements of Cash Flows (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:Depreciation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies",
     "longName": "100120 - Disclosure - Summary of Significant Accounting Policies",
     "shortName": "Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecurities1",
     "longName": "100130 - Disclosure - Securities",
     "shortName": "Securities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLosses1",
     "longName": "100140 - Disclosure - Loans and Allowance for Credit Losses",
     "shortName": "Loans and Allowance for Credit Losses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FinancingReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FinancingReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
     "longName": "100150 - Disclosure - Earnings Per Share",
     "shortName": "Earnings Per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstruments",
     "longName": "100160 - Disclosure - Financial Instruments",
     "shortName": "Financial Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurements",
     "longName": "100170 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers",
     "longName": "100180 - Disclosure - Revenue From Contracts With Customers",
     "shortName": "Revenue From Contracts With Customers",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivities",
     "longName": "100190 - Disclosure - Derivative and Hedging Activities",
     "shortName": "Derivative and Hedging Activities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies",
     "longName": "100200 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables",
     "longName": "100210 - Disclosure - Securities (Tables)",
     "shortName": "Securities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables",
     "longName": "100220 - Disclosure - Loans and Allowance for Credit Losses (Tables)",
     "shortName": "Loans and Allowance for Credit Losses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "cofs:LoansByTypeAsPercentageOfPortfolioTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "cofs:LoansByTypeAsPercentageOfPortfolioTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
     "longName": "100230 - Disclosure - Earnings Per Share (Tables)",
     "shortName": "Earnings Per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsTables",
     "longName": "100240 - Disclosure - Financial Instruments (Tables)",
     "shortName": "Financial Instruments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueByBalanceSheetGroupingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueByBalanceSheetGroupingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsTables",
     "longName": "100250 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables",
     "longName": "100260 - Disclosure - Revenue From Contracts With Customers (Tables)",
     "shortName": "Revenue From Contracts With Customers (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesTables",
     "longName": "100270 - Disclosure - Derivative and Hedging Activities (Tables)",
     "shortName": "Derivative and Hedging Activities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
     "longName": "100280 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:StockIssuedDuringPeriodValueNewIssues",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4f881a9e-0d9e-4f61-a12c-35836427a9a5",
      "name": "us-gaap:StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
     "longName": "100290 - Disclosure - Securities - Additional Information (Details)",
     "shortName": "Securities - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableAllowanceForCreditLosses",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableAllowanceForCreditLosses",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails",
     "longName": "100300 - Disclosure - Securities - Fair Value of Equity Securities and Related Gross Unrealized Gains (Losses) Recognized in Interest Income (Details)",
     "shortName": "Securities - Fair Value of Equity Securities and Related Gross Unrealized Gains (Losses) Recognized in Interest Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:EquitySecuritiesFvNiCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:EquitySecuritiesFvNiCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
     "longName": "100310 - Disclosure - Securities - Fair Value of Debt Security, Available-for-sale and Held-to-maturity (Details)",
     "shortName": "Securities - Fair Value of Debt Security, Available-for-sale and Held-to-maturity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:DebtSecuritiesAvailableforsaleAndHeldtomaturityTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:DebtSecuritiesAvailableforsaleAndHeldtomaturityTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails",
     "longName": "100320 - Disclosure - Securities - Securities with Unrealized Losses Aggregated by Investment Category and Time with Unrealized Loss Position (Details)",
     "shortName": "Securities - Securities with Unrealized Losses Aggregated by Investment Category and Time with Unrealized Loss Position (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
     "longName": "100330 - Disclosure - Securities - Fair Value of Securities Available for Sale and The Related Unrealized Gains and Losses Recognized in Accumulated Comprehensive Income (Details)",
     "shortName": "Securities - Fair Value of Securities Available for Sale and The Related Unrealized Gains and Losses Recognized in Accumulated Comprehensive Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:HeldToMaturitySecuritiesTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:HeldToMaturitySecuritiesTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
     "longName": "100340 - Disclosure - Securities - Schedule of Maturities of Securities (Details)",
     "shortName": "Securities - Schedule of Maturities of Securities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "cofs:DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingWithinOneYearFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "cofs:DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingWithinOneYearFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails",
     "longName": "100350 - Disclosure - Securities - Unrealized Gains and Losses on Equity Securities (Details)",
     "shortName": "Securities - Unrealized Gains and Losses on Equity Securities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:EquitySecuritiesFvNiGainLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:GainLossOnInvestmentsTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:EquitySecuritiesFvNiGainLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:GainLossOnInvestmentsTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
     "longName": "100360 - Disclosure - Loans and Allowance for Credit Losses - Additional Information (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:ProvisionForLoanLossesExpensed",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R34": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
     "longName": "100370 - Disclosure - Loans and Allowance for Credit Losses - Loans by Type as Percentage of Portfolio (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Loans by Type as Percentage of Portfolio (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:LoansAndLeasesReceivableGrossCarryingAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:LoansByTypeAsPercentageOfPortfolioTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:LoansAndLeasesReceivableGrossCarryingAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:LoansByTypeAsPercentageOfPortfolioTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
     "longName": "100380 - Disclosure - Loans and Allowance for Credit Losses - Allowance for Credit Losses and Balances in Loan Portfolio (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Allowance for Credit Losses and Balances in Loan Portfolio (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_dce3d66a-84d2-44a5-b280-194077bf03be",
      "name": "us-gaap:LoansAndLeasesReceivableAllowance",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FinancingReceivableAllowanceForCreditLossesWriteOffs",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
     "longName": "100390 - Disclosure - Loans and Allowance for Credit Losses - Schedule of Information Regarding Credit Exposure (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Schedule of Information Regarding Credit Exposure (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableOriginatedInCurrentFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_3886acf1-bab8-4eac-b7b2-a337d0529a61",
      "name": "us-gaap:FinancingReceivableOriginatedInCurrentFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:SummaryOfAmortizedCostBasisOfLoansTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureParentheticalDetails",
     "longName": "100400 - Disclosure - Loans and Allowance for Credit Losses - Schedule of Information Regarding Credit Exposure (Parenthetical) (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Schedule of Information Regarding Credit Exposure (Parenthetical) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "cofs:FinancingReceivableOriginatedCheckingAccountsWriteoffs",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "link:footnote",
       "p",
       "cofs:SummaryOfAmortizedCostBasisOfLoansTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "cofs:FinancingReceivableOriginatedCheckingAccountsWriteoffs",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "link:footnote",
       "p",
       "cofs:SummaryOfAmortizedCostBasisOfLoansTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
     "longName": "100410 - Disclosure - Loans and Allowance for Credit Losses - Summary of Amortized Cost Basis Loans Modified To Borrowers Experiencing On Financing Receivable (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Summary of Amortized Cost Basis Loans Modified To Borrowers Experiencing On Financing Receivable (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_dce3d66a-84d2-44a5-b280-194077bf03be",
      "name": "cofs:FinancingReceivableTroubledLoanModificationAmortizedCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_dce3d66a-84d2-44a5-b280-194077bf03be",
      "name": "cofs:FinancingReceivableTroubledLoanModificationAmortizedCost",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
     "longName": "100430 - Disclosure - Loans and Allowance for Credit Losses - Nonaccrual Loans by Loan Category (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Nonaccrual Loans by Loan Category (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableNonaccrualNoAllowance",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableNonaccrualNoAllowance",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
     "longName": "100450 - Disclosure - Loans and Allowance for Credit Losses - Aging Analysis of Loans by Loan Category (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Aging Analysis of Loans by Loan Category (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:LoansAndLeasesReceivableNetOfDeferredIncome",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PastDueFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
     "longName": "100470 - Disclosure - Earnings Per Share - Additional Information (Details)",
     "shortName": "Earnings Per Share - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_8115e704-1d0e-4383-be50-7415a8faeea8",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_8115e704-1d0e-4383-be50-7415a8faeea8",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
     "longName": "100480 - Disclosure - Earnings Per Share - Schedule of Basic Earnings Per Share and Diluted Earnings Per Share (Details)",
     "shortName": "Earnings Per Share - Schedule of Basic Earnings Per Share and Diluted Earnings Per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "div",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
     "longName": "100490 - Disclosure - Financial Instruments - Summary of Financial Instruments (Details)",
     "shortName": "Financial Instruments - Summary of Financial Instruments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:EquitySecuritiesFvNi",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_543bda6f-a9ca-4fd8-ae13-a3c5ab5c8f8b",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
     "longName": "100500 - Disclosure - Fair Value Measurements - Schedule of Assets and Liabilities Measured at Fair Value (Details)",
     "shortName": "Fair Value Measurements - Schedule of Assets and Liabilities Measured at Fair Value (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_39daff3f-008c-41f2-b205-f182dae0d282",
      "name": "us-gaap:EquitySecuritiesFvNi",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_85e9385f-8195-4cd3-951d-9143d96daa03",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtSecurities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock",
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
     "longName": "100510 - Disclosure - Fair Value Measurements - Changes in Level 3 Assets Measured at Fair Value on a Recurring Basis (Details)",
     "shortName": "Fair Value Measurements - Changes in Level 3 Assets Measured at Fair Value on a Recurring Basis (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_a78ba132-d42c-4fb3-979c-33b25be4de09",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_a78ba132-d42c-4fb3-979c-33b25be4de09",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
     "longName": "100520 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
     "longName": "100530 - Disclosure - Fair Value Measurements - Assets Measured at Fair Value on a Non-recurring Basis (Details)",
     "shortName": "Fair Value Measurements - Assets Measured at Fair Value on a Non-recurring Basis (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_b10f5673-419b-4bd8-8dc6-107f9102e35e",
      "name": "cofs:CollateralDependentLoansFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnNonrecurringBasisTextBlock",
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b10f5673-419b-4bd8-8dc6-107f9102e35e",
      "name": "cofs:CollateralDependentLoansFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueAssetsMeasuredOnNonrecurringBasisTextBlock",
       "div",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
     "longName": "100540 - Disclosure - Revenue from Contracts with Customers - Schedule of Noninterest Income Separated by Revenue (Details)",
     "shortName": "Revenue from Contracts with Customers - Schedule of Noninterest Income Separated by Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1c9ff77e-ec42-4a3a-b070-566bc6181bdb",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
     "longName": "100550 - Disclosure - Derivative and Hedging Activities - Additional Information (Details)",
     "shortName": "Derivative and Hedging Activities - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_ca03a1f8-85f5-43e7-bf88-5db569929ab2",
      "name": "us-gaap:DerivativeLossOnDerivative",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_ca03a1f8-85f5-43e7-bf88-5db569929ab2",
      "name": "us-gaap:DerivativeLossOnDerivative",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
     "longName": "100560 - Disclosure - Derivative and Hedging Activities - Schedule of Derivatives Instruments in Balance Sheet Location (Details)",
     "shortName": "Derivative and Hedging Activities - Schedule of Derivatives Instruments in Balance Sheet Location (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "C_6c00c792-997a-4b0c-b0f7-4444cb764097",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R51": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
     "longName": "100570 - Disclosure - Derivative and Hedging Activities - Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships (Details)",
     "shortName": "Derivative and Hedging Activities - Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_9c58ac4c-e970-493f-81f7-bc2f8b355b8a",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9c58ac4c-e970-493f-81f7-bc2f8b355b8a",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
     "longName": "100580 - Disclosure - Derivatives and Hedging Activities - Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost (Details)",
     "shortName": "Derivatives and Hedging Activities - Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_dfea1e64-7b16-414a-89eb-14e36399ece9",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_dfea1e64-7b16-414a-89eb-14e36399ece9",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20240331.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "cofs_AAAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AAAMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "AAA.",
        "label": "A A A [Member]",
        "terseLabel": "AAA [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AAMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A A [Member]",
        "label": "A A [Member]",
        "terseLabel": "AA [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AAOrBetterMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AAOrBetterMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "AA or Better [Member]",
        "documentation": "Related to AA or better.",
        "label": "AA or Better [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ARatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ARatedMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A rated.",
        "label": "A Rated [Member]",
        "terseLabel": "A Rated [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AaOrBetterMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AaOrBetterMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "AA Or better.",
        "label": "AA Or Better [Member]",
        "terseLabel": "AA or Better [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingStandardsUpdate201613Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingStandardsUpdate201613Member",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update 2016-13 [Member]",
        "terseLabel": "Adoption of ASU 2016-13",
        "documentation": "Accounting Standards Update 2016-13 Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments."
       }
      }
     },
     "auth_ref": [
      "r357"
     ]
    },
    "us-gaap_AccountingStandardsUpdateExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingStandardsUpdateExtensibleList",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Extensible Enumeration]",
        "documentation": "Indicates amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r254",
      "r255",
      "r256",
      "r318",
      "r319",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r412",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r457",
      "r458",
      "r459",
      "r473",
      "r474",
      "r475",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r511",
      "r512",
      "r517",
      "r518",
      "r519",
      "r520",
      "r528",
      "r529",
      "r531",
      "r532",
      "r533",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r788"
     ]
    },
    "us-gaap_AccountsNotesAndLoansReceivableLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesAndLoansReceivableLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts, Notes, Loans and Financing Receivable [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AccruedInterestPayableFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AccruedInterestPayableFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued interest payable",
        "documentation": "Fair value portion of accrued interest payable."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AccruedInterestReceivableFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AccruedInterestReceivableFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued interest receivable",
        "documentation": "Represents fair value of accrued interest receivable."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized gain",
        "label": "AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax",
        "documentation": "Amount, after tax, of accumulated unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r770"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total",
        "terseLabel": "Accumulated other comprehensive loss, net",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r32",
      "r124",
      "r211",
      "r594",
      "r621",
      "r625"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "AOCI Attributable to Parent [Member]",
        "terseLabel": "Accumulated Other Comprehensive Income/(Loss), Net [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r18",
      "r32",
      "r478",
      "r481",
      "r539",
      "r616",
      "r617",
      "r771",
      "r772",
      "r773",
      "r784",
      "r785",
      "r786"
     ]
    },
    "us-gaap_AdjustmentForAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentForAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Amortization",
        "label": "Amortization",
        "totalLabel": "Amortization, Total",
        "documentation": "The aggregate amount of recurring noncash expense charged against earnings in the period to allocate the cost of assets over their estimated remaining economic lives."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r70"
     ]
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Axis]",
        "documentation": "Information by amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r254",
      "r255",
      "r256",
      "r257",
      "r266",
      "r318",
      "r319",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r412",
      "r447",
      "r448",
      "r449",
      "r451",
      "r452",
      "r453",
      "r454",
      "r457",
      "r458",
      "r459",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r511",
      "r512",
      "r517",
      "r518",
      "r519",
      "r520",
      "r528",
      "r529",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r575",
      "r576",
      "r577",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625"
     ]
    },
    "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustments to reconcile net income to net cash from operating activities:",
        "label": "Adjustments, Noncash Items, to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationEmployeeStockPurchaseProgramRequisiteServicePeriodRecognition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationEmployeeStockPurchaseProgramRequisiteServicePeriodRecognition",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of employee stock purchases",
        "documentation": "Amount of increase in additional paid-in capital (APIC) for recognition of cost for employee stock purchase program (ESPP) award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "verboseLabel": "Stock-based compensation expense",
        "totalLabel": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r73",
      "r444"
     ]
    },
    "cofs_AgriculturalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AgriculturalMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Agricultural [Member]",
        "documentation": "Represents information related to agriculture."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Allowance for Credit Losses and Balances in Loan Portfolio",
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r827"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible amortization",
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r68",
      "r70"
     ]
    },
    "cofs_AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amortized cost basis loans modified to borrowers experiencing on financing receivable.",
        "label": "Amortized Cost Basis Loans Modified To Borrowers Experiencing On Financing Receivable [Table Text Block]",
        "terseLabel": "Summary of Amortized Cost Basis Loans Modified To Borrowers Experiencing On Financing Receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r284"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r44"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities, Name [Domain]",
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented."
       }
      }
     },
     "auth_ref": [
      "r44"
     ]
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetBackedSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset-Backed Securities [Member]",
        "terseLabel": "Asset-backed Securities [Member]",
        "documentation": "Securities that are primarily serviced by the cash flows of a discrete pool of receivables or other financial assets for example, but not limited to, credit card receivables, car loans, recreational vehicle loans, and mobile home loans."
       }
      }
     },
     "auth_ref": [
      "r730",
      "r799",
      "r805",
      "r813"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events."
       }
      }
     },
     "auth_ref": [
      "r143",
      "r208",
      "r245",
      "r289",
      "r296",
      "r300",
      "r356",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r460",
      "r462",
      "r516",
      "r592",
      "r661",
      "r736",
      "r746",
      "r835",
      "r836",
      "r881"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repurchase Agreements and Similar Transactions, Maturity Periods [Domain]",
        "documentation": "Maturity period remaining for repurchase agreements and similar transactions, for example, but not limited to, securities lending arrangements. Element name and standard label in Maturity [numeric lower end] to [numeric higher end] [date measure] [Member] or Maturity Greater Than [low end numeric value] [date measure] [Member] or Maturity Less Than [high end numeric value] [date measure] [Member] formats."
       }
      }
     },
     "auth_ref": [
      "r249",
      "r555"
     ]
    },
    "us-gaap_AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodsAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repurchase Agreements and Similar Transactions, Maturity Periods [Axis]",
        "documentation": "Information by maturity period remaining for repurchase agreements and similar transactions, for example, but not limited to, securities lending arrangements. Element name and standard label in Maturity [numeric lower end] to [numeric higher end] [date measure] [Member] or Maturity Greater Than [low end numeric value] [date measure] [Member] or Maturity Less Than [high end numeric value] [date measure] [Member] formats."
       }
      }
     },
     "auth_ref": [
      "r249",
      "r555"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gross unrealized gains, available for sale",
        "terseLabel": "Gross unrealized gains, available for sale",
        "documentation": "Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r328"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "negatedLabel": "Gross unrealized losses, available for sale",
        "documentation": "Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r329"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "totalLabel": "Debt Securities, Available-for-Sale, Amortized Cost, Total",
        "terseLabel": "Amortized cost, available for sale",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r325",
      "r397",
      "r590"
     ]
    },
    "cofs_AvailableForSaleSecuritiesDebtAndEquitySecuritiesFvNiMaturitiesRollingAfterYearTenFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "AvailableForSaleSecuritiesDebtAndEquitySecuritiesFvNiMaturitiesRollingAfterYearTenFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails2": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "More than 10 Years",
        "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), and equity security measured at fair value with change in fair value recognized in net income (FV-NI), with single maturity date and allocated without single maturity date, maturing after rolling tenth fiscal year following latest fiscal year. For interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.",
        "terseLabel": "More than 10 Years"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 10.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities available for sale",
        "verboseLabel": "Securities available for sale, at fair value (Note 2)",
        "terseLabel": "Fair value, available for sale",
        "totalLabel": "Fair value, available for sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r326",
      "r397",
      "r579",
      "r796"
     ]
    },
    "us-gaap_AvailableforsaleSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableforsaleSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Available-for-Sale Securities [Member]",
        "documentation": "Investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r175"
     ]
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Location [Axis]",
        "documentation": "Information by location on balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Location [Domain]",
        "documentation": "Location in the balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": [
      "r85",
      "r89"
     ]
    },
    "us-gaap_BankOwnedLifeInsuranceIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BankOwnedLifeInsuranceIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings on life insurance policies",
        "documentation": "Earnings on or other increases in the value of the cash surrender value of bank owned life insurance policies."
       }
      }
     },
     "auth_ref": [
      "r157"
     ]
    },
    "cofs_BankOwnedLifeInsuranceIncomeOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "BankOwnedLifeInsuranceIncomeOperatingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Earnings on bank-owned life insurance",
        "label": "cofs_BankOwnedLifeInsuranceIncomeOperatingActivities",
        "documentation": "The amount of bank owned life insurance income classified as operating activities."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_Borrowings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "Borrowings",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Borrowings",
        "label": "cofs_Borrowings",
        "documentation": "Represents information related to borrowings."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BrokeredDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "BrokeredDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Brokered deposits.",
        "label": "Brokered Deposits",
        "terseLabel": "Brokered deposits"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Acquiree [Domain]",
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree."
       }
      }
     },
     "auth_ref": [
      "r456",
      "r733",
      "r734"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r75",
      "r456",
      "r733",
      "r734"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Acquisition, Pro Forma Information, Nonrecurring Adjustments [Table Text Block]",
        "terseLabel": "Acquired Loan Portfolio and Acquisition Fair Value Adjustments",
        "documentation": "Tabular disclosure of the nature and amount of any material, nonrecurring adjustments directly attributable to the business combination(s) included in the reported pro forma revenue and earnings (supplemental pro forma information)."
       }
      }
     },
     "auth_ref": [
      "r23"
     ]
    },
    "cofs_BusinessLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "BusinessLoanMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Loan [Member]",
        "documentation": "Business Loan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CarryingReportedAmountFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CarryingReportedAmountFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reported Value Measurement [Member]",
        "documentation": "Measured as reported on the statement of financial position (balance sheet)."
       }
      }
     },
     "auth_ref": [
      "r104",
      "r105"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r205",
      "r707"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndDueFromBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndDueFromBanks",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Due from Banks",
        "totalLabel": "Cash and Due from Banks, Total",
        "terseLabel": "Cash and due from banks",
        "documentation": "For banks and other depository institutions: Includes cash on hand (currency and coin), cash items in process of collection, noninterest bearing deposits due from other financial institutions (including corporate credit unions), and noninterest bearing balances with the Federal Reserve Banks, Federal Home Loan Banks and central banks."
       }
      }
     },
     "auth_ref": [
      "r141"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning cash and cash equivalents",
        "periodEndLabel": "Ending cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "totalLabel": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r131",
      "r243"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change in cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r131"
     ]
    },
    "cofs_CashDividendMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CashDividendMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Dividend [Member]",
        "documentation": "Represents the cash dividend."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashFlowHedgingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashFlowHedgingMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow Hedging [Member]",
        "documentation": "Hedge of the exposure to variability in the cash flows of a recognized asset or liability, or of a forecasted transaction, that is attributable to a particular risk."
       }
      }
     },
     "auth_ref": [
      "r82"
     ]
    },
    "us-gaap_CashSurrenderValueOfLifeInsurance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashSurrenderValueOfLifeInsurance",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Surrender Value of Life Insurance",
        "terseLabel": "Cash value of life insurance policies",
        "documentation": "Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity."
       }
      }
     },
     "auth_ref": [
      "r769"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferAccretableYield": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferAccretableYield",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails": {
       "parentTag": "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accretable yield",
        "label": "Certain Loans Acquired in Transfer, Accretable Yield",
        "documentation": "The aggregate excess of a loan's cash flows expected to be collected over the investor's initial investment in the loan. This relates to loans with deteriorating of credit quality since origination that were acquired by completion of a transfer for which it is probable, at acquisition, that the investor will be unable to collect all contractually required payments receivable."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CertainLoansAcquiredInTransferNonaccretableDifference": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNonaccretableDifference",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails": {
       "parentTag": "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Nonaccretable difference",
        "label": "Certain Loans Acquired in Transfer, Nonaccretable Difference",
        "documentation": "The amount of the loan's contractually required payments receivable in excess of the amount of its cash flows expected to be collected. This relates to loans with deteriorating of credit quality since origination that were acquired by completion of a transfer for which it is probable, at acquisition, that the investor will be unable to collect all contractually required payments receivable."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYield": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYield",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance",
        "periodEndLabel": "Balance",
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield",
        "documentation": "Amount of the excess of a loan's cash flows expected to be collected over the investor's initial investment in acquired loans not accounted for as debt securities with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r64"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAccretion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAccretion",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accretion",
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield, Accretion",
        "documentation": "Amount of accretion recognized for the excess of a loan's cash flows expected to be collected over the investor's initial investment in acquired loans not accounted for as debt securities, with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r64"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAdditions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAdditions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield, Additions",
        "terseLabel": "Merger with County Bank Corp. on October 1, 2019",
        "documentation": "Amount of additions to the excess of a loan's cash flows expected to be collected over the investor's initial investment in acquired loans not accounted for as debt securities with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r64"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldReclassificationsFromNonaccretableDifference": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldReclassificationsFromNonaccretableDifference",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield, Reclassifications from Nonaccretable Difference",
        "terseLabel": "Transfer from non-accretable to accretable yield",
        "documentation": "Amount of increase of reclassification from nonaccretable difference to the excess of a loan's cash flows expected to be collected over the investor's initial investment in acquired loans not accounted for as debt securities with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r64"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails": {
       "parentTag": "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Acquired During Period, Cash Flows Expected to be Collected at Acquisition",
        "totalLabel": "Expected cash flows",
        "documentation": "Amount of cash flows expected to be collected at acquisition of acquired loans not accounted for as debt securities with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r65"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails": {
       "parentTag": "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Acquired During Period, Contractually Required Payments Receivable at Acquisition",
        "totalLabel": "Loans acquired - contractual payments, Total",
        "documentation": "Amount of contractually required payments receivable at acquisition of acquired loans not accounted for as debt securities with evidence of deterioration of credit quality."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r65"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Carrying Amount, Net",
        "totalLabel": "Carrying balance at acquisition date",
        "documentation": "The recorded balance, net of any applicable reductions (for example, unamortized accretable yield and allowance for loan losses). This relates to loans not accounted for debt securities with evidence of deterioration of credit quality since origination that were acquired by completion of a transfer for which it is probable, at acquisition, that the investor will be unable to collect all contractually required payments receivable."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r63"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CollateralDependentLoansFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CollateralDependentLoansFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Collateral Dependent Loans Fair Value Disclosure",
        "label": "Collateral Dependent Loans Fair Value Disclosure",
        "terseLabel": "Collateral Dependent Loans"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialAndIndustrialAndResidentialRealEstatePortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CommercialAndIndustrialAndResidentialRealEstatePortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial And Industrial And Residential Real Estate Portfolio Segment [Member]",
        "label": "Commercial And Industrial And Residential Real Estate Portfolio Segment [Member]",
        "documentation": "Commercial and Industrial and Residential Real Estate Portfolio Segment."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialAndIndustrialMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CommercialAndIndustrialMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commercial and Industrial [Member]",
        "documentation": "Represents information related to commercial and industrial."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialAndIndustrialPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CommercialAndIndustrialPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial and Industrial [Member]",
        "label": "Commercial and Industrial Portfolio Segment [Member]",
        "documentation": "Commercial and industrial portfolio segment."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialLoansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CommercialLoansMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commercial Loans [Member]",
        "documentation": "Commercial Loans."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommercialRealEstatePortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommercialRealEstatePortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commercial Real Estate Portfolio Segment [Member]",
        "documentation": "Portfolio segment of the company's total financing receivables related to commercial real estate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockDividendsPerShareDeclared",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends declared per share",
        "terseLabel": "Dividends declared, per share (in dollars per share)",
        "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding."
       }
      }
     },
     "auth_ref": [
      "r137"
     ]
    },
    "us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockIncludingAdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Including Additional Paid in Capital [Member]",
        "terseLabel": "Common Stock and Paid in Capital [Member]",
        "documentation": "Common stock held by shareholders with par value plus amounts in excess of par value or issuance value (in cases of no-par value stock)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockNoParValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockNoParValue",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, No Par Value",
        "terseLabel": "Common stock, par value (in dollars per share)",
        "documentation": "Face amount per share of no-par value common stock."
       }
      }
     },
     "auth_ref": [
      "r118"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, authorized (in shares)",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r649"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance (in shares)",
        "periodEndLabel": "Balance (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "terseLabel": "Common stock, outstanding (in shares)",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r118",
      "r649",
      "r667",
      "r898",
      "r899"
     ]
    },
    "us-gaap_CommonStocksIncludingAdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStocksIncludingAdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stocks, Including Additional Paid in Capital",
        "terseLabel": "Common stock and paid-in capital, no par value; shares authorized: 15,000,000; shares outstanding: 7,541,187 at September 30, 2023 and 7,516,098 at December 31, 2022",
        "documentation": "Amount of par value plus amounts in excess of par value or issuance value for common stock issued."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r119",
      "r137"
     ]
    },
    "cofs_CommunityShoresBankCorpCommunityShoresMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CommunityShoresBankCorpCommunityShoresMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Community Shores Bank Corp (\"Community Shores\") [Member]",
        "documentation": "Represents information related to community shores bank corp."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Comprehensive income (loss)",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r224",
      "r226",
      "r232",
      "r582",
      "r602"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Principles of Consolidation",
        "terseLabel": "Principles of Consolidation",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r711"
     ]
    },
    "cofs_ConstructionRealEstateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ConstructionRealEstateMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Construction Real Estate [Member]",
        "documentation": "Represents information related to construction real estate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConsumerPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsumerPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consumer Portfolio Segment [Member]",
        "documentation": "Portfolio segment of the company's total financing receivables related to consumer receivables."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CorporateDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CorporateDebtSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Corporate Debt Securities [Member]",
        "terseLabel": "Corporate [Member]",
        "documentation": "Debt securities issued by domestic or foreign corporate business, banks and other entities with a promise of repayment."
       }
      }
     },
     "auth_ref": [
      "r730",
      "r732",
      "r892"
     ]
    },
    "cofs_CountyBankCorpCountyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CountyBankCorpCountyMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "County Bank Corp (\"County\") [Member]",
        "documentation": "Represents information related to County Bank Corp (\"County\")."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditLossFinancialInstrumentPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Loss, Financial Instrument [Policy Text Block]",
        "terseLabel": "Allowance for Credit Losses (\"ACL\")",
        "documentation": "Disclosure of accounting policy for credit loss on financial instrument measured at amortized cost basis, net investment in lease, off-balance sheet credit exposure, and available-for-sale debt security. Includes, but is not limited to, methodology used to estimate allowance for credit loss, how writeoff of uncollectible amount is recognized, and determination of past due status and nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r186",
      "r368",
      "r369",
      "r370",
      "r372",
      "r373",
      "r380",
      "r386",
      "r387",
      "r388",
      "r389",
      "r394",
      "r395",
      "r396",
      "r398",
      "r399",
      "r400",
      "r406"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustedBalanceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustedBalanceMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption, Adjusted Balance [Member]"
       }
      }
     },
     "auth_ref": [
      "r753",
      "r767",
      "r787",
      "r824",
      "r825",
      "r865",
      "r866",
      "r867",
      "r869",
      "r870",
      "r876",
      "r877",
      "r878",
      "r880"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption, Adjustment [Member]",
        "terseLabel": "Cumulative Effect of Change in Accounting Principle [Member]"
       }
      }
     },
     "auth_ref": [
      "r201",
      "r253",
      "r260",
      "r266",
      "r361",
      "r367",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r478",
      "r479",
      "r481",
      "r482",
      "r483",
      "r488",
      "r491",
      "r493",
      "r494",
      "r537"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Axis]"
       }
      }
     },
     "auth_ref": [
      "r201",
      "r253",
      "r260",
      "r266",
      "r361",
      "r367",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r478",
      "r479",
      "r481",
      "r482",
      "r483",
      "r488",
      "r491",
      "r493",
      "r494",
      "r537"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Domain]"
       }
      }
     },
     "auth_ref": [
      "r201",
      "r253",
      "r260",
      "r266",
      "r361",
      "r367",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r478",
      "r479",
      "r481",
      "r482",
      "r483",
      "r488",
      "r491",
      "r493",
      "r494",
      "r537"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CustomerServiceCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "CustomerServiceCharges",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer service charges",
        "documentation": "The amount of revenue from customer services charges and fees."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "terseLabel": "More than 12 months, fair value",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r405",
      "r725"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "terseLabel": "More than 12 months, unrealized losses",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for 12 months or longer, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r405"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "terseLabel": "Less than 12 months, fair value",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r405",
      "r725"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "terseLabel": "Less than 12 months, unrealized losses",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r405"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Net losses (gains) on sales of available for sale securities",
        "label": "Net gains (losses) on sales of securities",
        "negatedLabel": "Net gains (losses) on sales of securities",
        "totalLabel": "Debt Securities, Available-for-Sale, Realized Gain (Loss), Total",
        "documentation": "Amount of realized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r818"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position",
        "totalLabel": "Total, fair value",
        "terseLabel": "Total, fair value",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r402",
      "r725"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss",
        "totalLabel": "Total, unrealized losses",
        "terseLabel": "Total, unrealized losses",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r403"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Fair Value [Table Text Block]",
        "terseLabel": "Schedule of Available for Sale Securities with Unrealize Losses",
        "documentation": "Tabular disclosure of fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r725",
      "r830"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionNumberOfPositions": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionNumberOfPositions",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Number of Positions",
        "terseLabel": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Number of Positions",
        "documentation": "Number of investments in debt securities measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r173",
      "r404"
     ]
    },
    "cofs_DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingAfterFiveThroughTenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingAfterFiveThroughTenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails2": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "5 Years - 10 Years",
        "documentation": "Fair value of investment in debt security, measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI), maturing in rolling sixth through tenth fiscal year following latest fiscal year. For interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.",
        "terseLabel": "5 Years - 10 Years"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingAfterOneThroughFiveYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingAfterOneThroughFiveYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails2": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "1 Year - 5 Years",
        "documentation": "Fair value of investment in debt security, measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI), maturing in rolling second through fifth fiscal year following latest fiscal year. For interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.",
        "terseLabel": "1 Year - 5 Years"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesAvailableforsaleAndEquitySecuritiesFVNIMaturityRollingWithinOneYearFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails2": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less than 1 Year",
        "documentation": "Fair value of investment in debt security, measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI), maturing in next rolling fiscal year following latest fiscal year. For interim and annual periods when interim period is reported on rolling approach, from latest statement of financial position date.",
        "terseLabel": "Less than 1 Year"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DebtSecuritiesAvailableforsaleAndHeldtomaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesAvailableforsaleAndHeldtomaturityTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale and Held-to-Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of information about investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and measured at amortized cost (held-to-maturity).",
        "terseLabel": "Schedule of Gross Unrealized Gains and Losses on Investment Securities Available for Sale Recognized in Accumulated Other Comprehensive Income (loss)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesHeldToMaturityAmortizedCostAfterAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesHeldToMaturityAmortizedCostAfterAllowanceForCreditLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Securities held to maturity, at amortized cost net of credit losses (Note 2)",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss",
        "totalLabel": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Total",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r321",
      "r339",
      "r341",
      "r579"
     ]
    },
    "cofs_DebtSecuritiesHeldtomaturityFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesHeldtomaturityFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities held to maturity",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities [Member]",
        "terseLabel": "Total debt securities [Member]",
        "documentation": "Debt instrument issued by corporations, governments and governmental agencies, municipalities, and other institutions."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r739",
      "r900"
     ]
    },
    "cofs_DebtSecuritiesPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DebtSecuritiesPercent",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Debt securities percent.",
        "label": "Debt Securities Percent",
        "terseLabel": "Debt Securities, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesTradingAndEquitySecuritiesFvNiCostAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesTradingAndEquitySecuritiesFvNiCostAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Trading, and Equity Securities, FV-NI, Cost [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Deferred federal income tax (benefit)/expense",
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r783",
      "r868",
      "r871"
     ]
    },
    "us-gaap_Deposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Deposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deposits",
        "label": "Deposits",
        "documentation": "The aggregate of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among others."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "us-gaap_DepositsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepositsFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deposits, Fair Value Disclosure",
        "terseLabel": "Brokered deposits",
        "documentation": "Fair value portion of deposit liabilities held by the entity, including, but not limited to, foreign and domestic, interest and noninterest bearing, demand deposits, saving deposits, negotiable orders of withdrawal (NOW) and time deposits."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "totalLabel": "Depreciation, Total",
        "terseLabel": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r71"
     ]
    },
    "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative asset."
       }
      }
     },
     "auth_ref": [
      "r464"
     ]
    },
    "us-gaap_DerivativeAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Interest rate contracts",
        "label": "Interest rate contracts",
        "terseLabel": "Interest rate derivative contracts Assets",
        "totalLabel": "Derivative Asset, Total",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r515",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r655",
      "r656",
      "r692",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r709",
      "r739",
      "r893"
     ]
    },
    "us-gaap_DerivativeBasisSpreadOnVariableRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeBasisSpreadOnVariableRate",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative, Basis Spread on Variable Rate",
        "terseLabel": "Derivative, Basis Spread on Variable Rate",
        "documentation": "The percentage points added to the reference rate to compute the variable rate on the interest rate derivative."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeContractTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeContractTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Contract [Domain]",
        "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset."
       }
      }
     },
     "auth_ref": [
      "r639",
      "r641",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r662",
      "r663",
      "r664",
      "r665",
      "r676",
      "r677",
      "r678",
      "r679",
      "r682",
      "r683",
      "r684",
      "r685",
      "r692",
      "r694",
      "r698",
      "r700",
      "r738",
      "r739"
     ]
    },
    "cofs_DerivativeFixedCouponRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DerivativeFixedCouponRate",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, Fixed Coupon Rate",
        "label": "cofs_DerivativeFixedCouponRate",
        "documentation": "Fixed coupon rate related to the derivative."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeGainLossOnDerivativeNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total amounts of income and expense line items presented in the consolidated statements of income in which the effects of fair value or cash flow hedges are recorded",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "totalLabel": "Derivative, Gain (Loss) on Derivative, Net, Total",
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r874"
     ]
    },
    "us-gaap_DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative, Gain (Loss), Statement of Income or Comprehensive Income [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of income or comprehensive income that includes gain (loss) from derivative."
       }
      }
     },
     "auth_ref": [
      "r874"
     ]
    },
    "cofs_DerivativeInstrumentCashPayment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DerivativeInstrumentCashPayment",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument cash payment.",
        "label": "Derivative Instrument Cash Payment",
        "terseLabel": "Derivative instrument cash payment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentRiskAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instrument [Axis]",
        "documentation": "Information by type of derivative contract."
       }
      }
     },
     "auth_ref": [
      "r86",
      "r88",
      "r90",
      "r94",
      "r639",
      "r641",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r662",
      "r663",
      "r664",
      "r665",
      "r676",
      "r677",
      "r678",
      "r679",
      "r682",
      "r683",
      "r684",
      "r685",
      "r692",
      "r694",
      "r698",
      "r700",
      "r709",
      "r738",
      "r739"
     ]
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "terseLabel": "Derivative and Hedging Activities",
        "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts."
       }
      }
     },
     "auth_ref": [
      "r138",
      "r471",
      "r484"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Relationship [Axis]",
        "documentation": "Information by type of hedging relationship."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r86",
      "r90"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments, Gain (Loss) [Table]",
        "documentation": "Disclosure of information about the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r86",
      "r90",
      "r94",
      "r98",
      "r99",
      "r468"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instruments, Gain (Loss) [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r468"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Amount of gain or (loss) reclassified from accumulated other comprehensive income into income",
        "label": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net",
        "totalLabel": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net, Total",
        "documentation": "The effective portion of net gain (loss) reclassified from accumulated other comprehensive income into income on derivative instruments designated and qualifying as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r92"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Amount excluded from effectiveness testing recognized in earnings based on amortization approach",
        "label": "Derivative Instruments, Gain (Loss) Recognized in Income, Ineffective Portion and Amount Excluded from Effectiveness Testing, Net",
        "totalLabel": "Derivative Instruments, Gain (Loss) Recognized in Income, Ineffective Portion and Amount Excluded from Effectiveness Testing, Net, Total",
        "documentation": "The portion of gains and losses (net) on derivative instruments designated and qualifying as hedging instruments representing (a) the amount of the hedge ineffectiveness and (b) the amount, if any, excluded from the assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r93",
      "r100"
     ]
    },
    "cofs_DerivativeInstrumentsNetCashSettlementsReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DerivativeInstrumentsNetCashSettlementsReceived",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Net cash settlements received",
        "label": "Derivative Instruments Net Cash Settlements Received",
        "documentation": "Represents net cash settlements received for derivative instruments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Derivative instruments liabilities",
        "terseLabel": "Interest rate contracts",
        "label": "Derivative Liability",
        "totalLabel": "Derivative Liability, Total",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r214",
      "r515",
      "r632",
      "r633",
      "r634",
      "r635",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r662",
      "r664",
      "r665",
      "r694",
      "r695",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r709",
      "r893"
     ]
    },
    "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative liability."
       }
      }
     },
     "auth_ref": [
      "r464"
     ]
    },
    "us-gaap_DerivativeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r484"
     ]
    },
    "us-gaap_DerivativeLossOnDerivative": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLossOnDerivative",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss on derivative",
        "label": "Derivative, Loss on Derivative",
        "documentation": "Amount of decrease in the fair value of derivatives recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r465"
     ]
    },
    "us-gaap_DerivativeNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeNotionalAmount",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, Notional Amount",
        "label": "Derivative, Notional Amount",
        "documentation": "Nominal or face amount used to calculate payment on derivative."
       }
      }
     },
     "auth_ref": [
      "r872",
      "r873"
     ]
    },
    "us-gaap_DerivativeNumberOfInstrumentsHeld": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeNumberOfInstrumentsHeld",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, Number of Instruments Held, Total",
        "label": "Derivative, Number of Instruments Held",
        "totalLabel": "Derivative, Number of Instruments Held, Total",
        "documentation": "The number of derivative instruments of a particular group held by the entity."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r80",
      "r640",
      "r692",
      "r693",
      "r696",
      "r739"
     ]
    },
    "us-gaap_DerivativeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative [Table]",
        "documentation": "Schedule that describes and identifies a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r77",
      "r78",
      "r80",
      "r83",
      "r87",
      "r90",
      "r96",
      "r97",
      "r99",
      "r484"
     ]
    },
    "us-gaap_DerivativeTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeTermOfContract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, Term of Contract (Year)",
        "label": "Derivative, Term of Contract",
        "documentation": "Period the derivative contract is outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativesFairValueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativesFairValueLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivatives, Fair Value [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DesignatedAsHedgingInstrumentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Designated as Hedging Instrument [Member]",
        "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "cofs_DirectorsStockPurchasePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "DirectorsStockPurchasePlanMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Directors' Stock Purchase Plan [Member]",
        "documentation": "Represents information Directors' Stock Purchase Plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of Revenue [Table Text Block]",
        "terseLabel": "Schedule of Noninterest Income Separated by Revenue",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r837"
     ]
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureTextBlockAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disclosure Text Block [Abstract]",
        "terseLabel": "Financial Instruments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DividendsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends [Axis]",
        "documentation": "Information about distribution of earnings to shareholders including, but not limited to, cash, property or capital stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DividendsCommonStockCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsCommonStockCash",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Cash dividends declared",
        "label": "Dividends, Common Stock, Cash",
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash."
       }
      }
     },
     "auth_ref": [
      "r137"
     ]
    },
    "us-gaap_DividendsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends [Domain]",
        "documentation": "Distributions of earnings to shareholders including but not limited to cash, property or capital stock."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentInformationLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentInformationTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Table]",
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r750"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r751"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DoubtfulMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DoubtfulMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Doubtful [Member]",
        "documentation": "A category of financing receivables that have all the weaknesses inherent in those classified as substandard, with the added characteristic that the weaknesses make collection or liquidation in full, on the basis of currently existing facts, conditions, and values, highly questionable and improbable."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_EarningOnDeathBenefitFromBankOwnedLifeInsurance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "EarningOnDeathBenefitFromBankOwnedLifeInsurance",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents earnings on death benefit from bank owned life insurance.",
        "label": "Earning on Death Benefit From Bank Owned Life Insurance",
        "negatedTerseLabel": "Earnings on death benefit from bank-owned life insurance"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basic earnings per share (Note 4)",
        "label": "Basic earnings per common shares",
        "totalLabel": "Earnings Per Share, Basic, Total",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r233",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r268",
      "r271",
      "r281",
      "r282",
      "r283",
      "r287",
      "r494",
      "r495",
      "r583",
      "r603",
      "r713"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Diluted earnings per share (Note 4)",
        "label": "Diluted earnings per common share",
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r233",
      "r258",
      "r259",
      "r260",
      "r261",
      "r262",
      "r271",
      "r281",
      "r282",
      "r283",
      "r287",
      "r494",
      "r495",
      "r583",
      "r603",
      "r713"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Earnings Per Share",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r267",
      "r284",
      "r285",
      "r286"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock Options [Member]",
        "label": "Share-Based Payment Arrangement, Option [Member]",
        "terseLabel": "Employee Stock Option",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_EmployeeStockPurchasePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "EmployeeStockPurchasePlanMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Purchase Plan [Member]",
        "documentation": "Represents information related to Employee Stock Purchase Plan."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity [Domain]",
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities Act File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r752"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r748"
     ]
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Component [Domain]",
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r201",
      "r227",
      "r228",
      "r229",
      "r250",
      "r251",
      "r252",
      "r255",
      "r263",
      "r265",
      "r288",
      "r361",
      "r367",
      "r426",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r478",
      "r479",
      "r480",
      "r481",
      "r483",
      "r493",
      "r521",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r539",
      "r616",
      "r617",
      "r618",
      "r630",
      "r688"
     ]
    },
    "us-gaap_EquitySecuritiesFvNi": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNi",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity securities at fair value",
        "verboseLabel": "Equity securities, at fair value (Note 2)",
        "label": "Fair Value",
        "documentation": "Amount of investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI), classified as current."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r513",
      "r708"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiCost",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities, FV-NI, Cost",
        "terseLabel": "Amortized Cost",
        "documentation": "Cost of investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI). Excludes equity method investment and investment in equity security without readily determinable fair value."
       }
      }
     },
     "auth_ref": [
      "r590"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in market value of equity securities",
        "negatedLabel": "Net change in market value of equity securities",
        "negatedTotalLabel": "Net gains and (losses) recognized during the period",
        "terseLabel": "Net gains and (losses) recognized during the period",
        "totalLabel": "Net gains and (losses) recognized during the period",
        "documentation": "Amount of unrealized and realized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r606",
      "r822"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiRealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiRealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": "us-gaap_EquitySecuritiesFvNiGainLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities, FV-NI, Realized Gain (Loss)",
        "totalLabel": "Equity Securities, FV-NI, Realized Gain (Loss), Total",
        "terseLabel": "Less: Net gains and (losses) recognized during the period on securities sold",
        "documentation": "Amount of realized gain (loss) from sale of investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r604",
      "r822"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedGain",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Unrealized Gains",
        "label": "Equity Securities, FV-NI, Unrealized Gain",
        "documentation": "Amount of unrealized gain on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r355"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": "us-gaap_EquitySecuritiesFvNiGainLoss",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 8.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized gains and (losses) recognized during the reporting period on securities still held at the reporting date",
        "totalLabel": "Unrealized gains and (losses) recognized during the reporting period on securities still held at the reporting date",
        "verboseLabel": "Change in market value of equity securities",
        "label": "Net change in market value of equity securities",
        "negatedLabel": "Net change in market value of equity securities",
        "documentation": "Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r605",
      "r822"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Gross Unrealized Losses",
        "label": "Equity Securities, FV-NI, Unrealized Loss",
        "documentation": "Amount of unrealized loss on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": [
      "r355"
     ]
    },
    "us-gaap_EquitySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities [Member]",
        "documentation": "Ownership interest or right to acquire or dispose of ownership interest in corporations and other legal entities for which ownership interest is represented by shares of common or preferred stock, convertible securities, stock rights, or stock warrants."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r741",
      "r742",
      "r743",
      "r900"
     ]
    },
    "us-gaap_EstimateOfFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EstimateOfFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Estimate of Fair Value Measurement [Member]",
        "documentation": "Measured as an estimate of fair value."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r515",
      "r727",
      "r728"
     ]
    },
    "us-gaap_ExternalCreditRatingByGroupingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ExternalCreditRatingByGroupingAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "External Credit Rating by Grouping [Axis]",
        "documentation": "Information by external rating classified as investment grade or non investment grade."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r470",
      "r829"
     ]
    },
    "us-gaap_ExternalCreditRatingByGroupingDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ExternalCreditRatingByGroupingDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "External Credit Rating by Grouping [Domain]",
        "documentation": "External credit rating classified as investment grade or non-investment grade."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r499",
      "r507"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r499",
      "r507"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnNonrecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnNonrecurringBasisTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements, Nonrecurring [Table Text Block]",
        "terseLabel": "Schedule of Assets Measured at Fair Value on a Non-recurring Basis",
        "documentation": "Tabular disclosure of assets and liabilities by class, including financial instruments measured at fair value that are classified in shareholders' equity, if any, that are measured at fair value on a nonrecurring basis in periods after initial recognition (for example, impaired assets). Disclosures may include, but are not limited to: (a) the fair value measurements recorded and the reasons for the measurements and (b) the level within the fair value hierarchy in which the fair value measurements are categorized in their entirety (levels 1, 2, 3)."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r101",
      "r139"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]",
        "terseLabel": "Schedule of Assets and Liabilities Measured at Fair Value",
        "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r139"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Class [Domain]",
        "documentation": "Class of asset."
       }
      }
     },
     "auth_ref": [
      "r22"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of Changes in Level 3 Assets Measured at Fair Value on a Recurring Basis",
        "documentation": "Tabular disclosure of the fair value measurement of assets using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes during the period attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income (loss), and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset."
       }
      }
     },
     "auth_ref": [
      "r22",
      "r103"
     ]
    },
    "us-gaap_FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueByAssetClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByAssetClassAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Class [Axis]",
        "documentation": "Information by class of asset."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r103"
     ]
    },
    "us-gaap_FairValueByBalanceSheetGroupingTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByBalanceSheetGroupingTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, by Balance Sheet Grouping [Table]",
        "documentation": "Disclosure of information about the fair value of financial instruments, including financial assets and financial liabilities, and the measurements of those instruments, assets, and liabilities."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r104",
      "r105"
     ]
    },
    "us-gaap_FairValueByBalanceSheetGroupingTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByBalanceSheetGroupingTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, by Balance Sheet Grouping [Table Text Block]",
        "terseLabel": "Summary of Financial Instruments",
        "documentation": "Tabular disclosure of the fair value of financial instruments, including financial assets and financial liabilities, and the measurements of those instruments, assets, and liabilities."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r104"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r499",
      "r543",
      "r544",
      "r545",
      "r727",
      "r728",
      "r730",
      "r731",
      "r732"
     ]
    },
    "us-gaap_FairValueByMeasurementBasisAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByMeasurementBasisAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Basis [Axis]",
        "documentation": "Information by measurement basis."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r101",
      "r423",
      "r727",
      "r728"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r499",
      "r500",
      "r501",
      "r508"
     ]
    },
    "us-gaap_FairValueDisclosureItemAmountsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosureItemAmountsDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurement [Domain]",
        "documentation": "Measurement basis, for example, but not limited to, reported value, fair value, portion at fair value, portion at other than fair value."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r727",
      "r728"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurements",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Text Block]",
        "terseLabel": "Fair Value Measurements",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r497"
     ]
    },
    "us-gaap_FairValueHedgingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueHedgingMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hedging [Member]",
        "documentation": "A hedge of the exposure to changes in the fair value of a recognized asset or liability, or of an unrecognized firm commitment, that are attributable to a particular risk."
       }
      }
     },
     "auth_ref": [
      "r81"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r438",
      "r443",
      "r499",
      "r543",
      "r730",
      "r731",
      "r732"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r438",
      "r443",
      "r499",
      "r544",
      "r727",
      "r728",
      "r730",
      "r731",
      "r732"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r499",
      "r545",
      "r727",
      "r728",
      "r730",
      "r731",
      "r732"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amount of total losses for the period included in earning attributable to the change in unrealized gains (losses)relating to assets and liabilities still held at March 31,",
        "label": "Fair Value, Liability, Recurring Basis, Still Held, Unrealized Gain (Loss)",
        "documentation": "Amount of unrealized gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3) and still held."
       }
      }
     },
     "auth_ref": [
      "r505"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisSubordinatedDebtObligations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisSubordinatedDebtObligations",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subordinated debentures",
        "label": "Subordinated Debt Obligations, Fair Value Disclosure",
        "documentation": "Fair value of subordinated debt obligations including, but not limited to, subordinated loan, subordinated bond, subordinated debenture or junior debt."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r139"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInEarnings1",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total realized and unrealized gains included in noninterest income",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Gain (Loss) Included in Earnings",
        "documentation": "Amount of gain (loss) recognized in income from asset measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r502"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total unrealized gains included in other comprehensive income",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Gain (Loss) Included in Other Comprehensive Income (Loss)",
        "documentation": "Amount of gain (loss) recognized in other comprehensive income (OCI) from asset measured at fair value on recurring basis using unobservable input (level 3)."
       }
      }
     },
     "auth_ref": [
      "r503"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities purchased",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases",
        "documentation": "Amount of purchases of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchasesSalesIssuancesSettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchasesSalesIssuancesSettlements",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net purchases, sales, calls, and maturities",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases, (Sales), Issuances, (Settlements)",
        "totalLabel": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases, (Sales), Issuances, (Settlements), Total",
        "documentation": "Amount of purchases, (sales), issuances and (settlements) of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net transfers into Level 3",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Transfers Into Level 3",
        "documentation": "Amount of transfer of financial instrument classified as an asset into level 3 of the fair value hierarchy."
       }
      }
     },
     "auth_ref": [
      "r504"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance",
        "periodEndLabel": "Balance",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value",
        "documentation": "Fair value of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r22"
     ]
    },
    "cofs_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Transfer to held to maturity",
        "label": "cofs_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity",
        "documentation": "Amount of transfers from one asset to held-to-maturity security of financial instrument classified as an asset measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r423",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r543",
      "r544",
      "r545",
      "r727",
      "r728",
      "r730",
      "r731",
      "r732"
     ]
    },
    "us-gaap_FairValueMeasurementsNonrecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsNonrecurringMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Nonrecurring [Member]",
        "documentation": "Infrequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, not frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r499",
      "r500",
      "r501",
      "r506",
      "r508"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Recurring [Member]",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r497",
      "r508"
     ]
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "documentation": "Schedule that discloses the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r85",
      "r87",
      "r98"
     ]
    },
    "us-gaap_FederalDepositInsuranceCorporationPremiumExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalDepositInsuranceCorporationPremiumExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "FDIC insurance",
        "documentation": "Amount of expense for Federal Deposit Insurance Corporation (FDIC) insurance."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "us-gaap_FederalFundsPurchased": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalFundsPurchased",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal Funds Purchased",
        "terseLabel": "Federal funds purchased",
        "documentation": "Amount of short term borrowing where a bank borrows, at the federal funds rate, from another bank."
       }
      }
     },
     "auth_ref": [
      "r110"
     ]
    },
    "us-gaap_FederalHomeLoanBankBorrowingsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankBorrowingsFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowings",
        "label": "Federal Home Loan Bank Borrowings, Fair Value Disclosure",
        "documentation": "Fair value portion of borrowing from Federal Home Loan Bank (FHLBank)."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_FederalHomeLoanBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal Home Loan Bank Stock",
        "terseLabel": "Federal Home Loan Bank stock",
        "documentation": "Federal Home Loan Bank (FHLB) stock represents an equity interest in a FHLB. It does not have a readily determinable fair value because its ownership is restricted and it lacks a market (liquidity)."
       }
      }
     },
     "auth_ref": [
      "r165"
     ]
    },
    "us-gaap_FederalHomeLoanBankStockAndFederalReserveBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankStockAndFederalReserveBankStock",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal Home Loan Bank Stock and Federal Reserve Bank Stock",
        "totalLabel": "Federal Home Loan Bank Stock and Federal Reserve Bank Stock, Total",
        "documentation": "Amount of Federal Home Loan Bank (FHLB) and Federal Reserve Bank stock."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FederalReserveBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalReserveBankStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal Reserve Bank Stock",
        "terseLabel": "Federal Reserve Bank stock",
        "documentation": "Federal Reserve Bank stock represents an equity interest in the Federal Reserve Bank. It does not have a readily determinable fair value because its ownership is restricted and it lacks a market (liquidity)."
       }
      }
     },
     "auth_ref": [
      "r165"
     ]
    },
    "us-gaap_FinancialAssetNotPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialAssetNotPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Not Past Due [Member]",
        "documentation": "Financial asset not past due."
       }
      }
     },
     "auth_ref": [
      "r380",
      "r724"
     ]
    },
    "us-gaap_FinancialAssetPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialAssetPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Past Due [Member]",
        "documentation": "Financial asset past due."
       }
      }
     },
     "auth_ref": [
      "r380",
      "r724",
      "r794"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r373",
      "r374",
      "r380",
      "r381",
      "r390",
      "r401",
      "r406",
      "r407",
      "r424",
      "r425",
      "r484",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r601",
      "r725",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r818",
      "r819",
      "r820",
      "r821"
     ]
    },
    "us-gaap_FinancialInstrumentPerformanceStatusAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentPerformanceStatusAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instrument Performance Status [Axis]",
        "documentation": "Information by category of performance or non-performance status of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r829"
     ]
    },
    "us-gaap_FinancialInstrumentPerformanceStatusDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentPerformanceStatusDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instrument Performance Status [Domain]",
        "documentation": "Category of performance or non-performance status of financial instruments, including but not limited to, financing receivables, loans, debt, and investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialInstrumentsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instruments Disclosure [Text Block]",
        "terseLabel": "Financial Instruments",
        "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentsFinancialAssetsBalanceSheetGroupingsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instruments, Financial Assets, Balance Sheet Groupings [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableAcquiredWithDeterioratedCreditQuality": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableAcquiredWithDeterioratedCreditQuality",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired with deteriorated credit quality",
        "label": "cofs_FinancingReceivableAcquiredWithDeterioratedCreditQuality",
        "documentation": "The balance of financing receivables that were acquired with deteriorated credit quality."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLosses",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Financing Receivable, Allowance for Credit Loss, Beginning Balance",
        "periodEndLabel": "Financing Receivable, Allowance for Credit Loss, Ending Balance",
        "label": "Financing Receivable, Allowance for Credit Loss",
        "terseLabel": "Allowance for credit loss",
        "documentation": "Amount of allowance for credit loss on financing receivable. Excludes allowance for financing receivable covered under loss sharing agreement."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r194",
      "r196",
      "r198",
      "r212",
      "r371",
      "r375",
      "r379",
      "r883"
     ]
    },
    "cofs_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForCreditLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable, allowance for credit losses, collectively evaluated for credit loss.",
        "label": "Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Credit Loss",
        "terseLabel": "Collectively evaluated for credit loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment",
        "terseLabel": "Collectively evaluated for credit loss",
        "documentation": "The valuation allowance for financing receivables that are expected to be uncollectible that were collectively evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "cofs_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForCreditLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable, allowance for credit losses, individually evaluated for credit loss.",
        "label": "Financing Receivable, Allowance for Credit Losses, Individually Evaluated for Credit Loss",
        "terseLabel": "Individually evaluated for credit loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Allowance for Credit Losses, Individually Evaluated for Impairment",
        "terseLabel": "Individually evaluated for credit loss",
        "documentation": "Amount of valuation allowance for financing receivables that are expected to be uncollectible that were individually evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesRecovery",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recoveries",
        "label": "Financing Receivable, Allowance for Credit Loss, Recovery",
        "documentation": "Amount of increase in allowance for credit loss on financing receivable from recovery."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r378",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Financing Receivable, Allowance for Credit Loss, Writeoff, Total",
        "negatedLabel": "Charge-offs",
        "label": "Financing Receivable, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of writeoff of financing receivable, charged against allowance for credit loss."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r377",
      "r392",
      "r723"
     ]
    },
    "cofs_FinancingReceivableCollectivelyEvaluatedForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableCollectivelyEvaluatedForCreditLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing Receivable Collectively Evaluated For Credit loss.",
        "label": "Financing Receivable Collectively Evaluated For Credit loss",
        "terseLabel": "Collectively evaluated for credit loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableCollectivelyEvaluatedForImpairment",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collectively evaluated for impairment",
        "label": "Financing Receivable, Collectively Evaluated for Impairment",
        "documentation": "The balance of financing receivables that were collectively evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r307",
      "r717"
     ]
    },
    "us-gaap_FinancingReceivableCreditQualityIndicatorsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableCreditQualityIndicatorsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable Credit Quality Indicators [Table Text Block]",
        "terseLabel": "Schedule of Information Regarding Credit Exposure",
        "documentation": "Tabular disclosure of financing receivables by credit quality indicator. The credit quality indicator is a statistic about the credit quality of financing receivables. Examples include, but not limited to, consumer credit risk scores, credit-rating-agency ratings, an entity's internal credit risk grades, loan-to-value ratios, collateral, collection experience and other internal metrics."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_FinancingReceivableIncreaseThroughOrganicLoanGrowth": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableIncreaseThroughOrganicLoanGrowth",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable increase through organic loan growth.",
        "label": "Financing Receivable Increase through Organic Loan Growth",
        "terseLabel": "Core loans growth"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableIndividuallyEvaluatedForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableIndividuallyEvaluatedForCreditLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing Receivable Individually Evaluated For Credit Loss.",
        "label": "Financing Receivable Individually Evaluated For Credit Loss",
        "terseLabel": "Individually evaluated for credit loss"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableIndividuallyEvaluatedForImpairment",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individually evaluated for impairment",
        "label": "Financing Receivable, Individually Evaluated for Impairment",
        "documentation": "The balance of financing receivables that were individually evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r308",
      "r717"
     ]
    },
    "cofs_FinancingReceivableInterestRateReduction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableInterestRateReduction",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable interest rate reduction.",
        "label": "Financing Receivable Interest Rate Reduction",
        "terseLabel": "Interest rate reduction"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableModificationsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Troubled Debt Restructuring [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r310",
      "r311",
      "r312",
      "r313",
      "r716"
     ]
    },
    "us-gaap_FinancingReceivableModificationsNumberOfContracts2": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsNumberOfContracts2",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of loans",
        "terseLabel": "Financing Receivable, Modifications, Number of Contracts",
        "documentation": "Number of financing receivables that have been modified by troubled debt restructurings."
       }
      }
     },
     "auth_ref": [
      "r790"
     ]
    },
    "us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsPostModificationRecordedInvestment2",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Post- Modification Outstanding",
        "documentation": "Amortized cost of financing receivable modified during period for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r312",
      "r716",
      "r790"
     ]
    },
    "us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsPreModificationRecordedInvestment2",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre- Modification Outstanding",
        "documentation": "Amount, before troubled debt restructuring, of financing receivable to be modified."
       }
      }
     },
     "auth_ref": [
      "r790"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualInterestIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualInterestIncome",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual, Interest Income",
        "terseLabel": "Interest income recognized during the period on nonaccrual loans",
        "documentation": "Amount of interest income on financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r383"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualNoAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualNoAllowance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual, No Allowance",
        "terseLabel": "Nonaccrual loans with no ACL",
        "documentation": "Amortized cost of financing receivable on nonaccrual status with no allowance for credit loss. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r385"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualStatusLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualStatusLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r381"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual [Table]",
        "documentation": "Disclosure of information about financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r381"
     ]
    },
    "cofs_FinancingReceivableOriginatedCheckingAccountsWriteoffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedCheckingAccountsWriteoffs",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing receivable originated checking accounts writeoffs",
        "label": "Financing Receivable Originated Checking Accounts Writeoffs",
        "documentation": "Financing receivable originated checking accounts writeoffs."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedCheckingAccountsWriteoffsAnnualized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedCheckingAccountsWriteoffsAnnualized",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing receivable originated checking accounts writeoffs annualized",
        "label": "Financing Receivable Originated Checking Accounts Writeoffs Annualized",
        "documentation": "Financing receivable originated checking accounts writeoffs annualized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableOriginatedFiveOrMoreYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedFiveOrMoreYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Originated, More than Five Years before Current Fiscal Year",
        "terseLabel": "Prior",
        "documentation": "Amortized cost of financing receivable originated more than five years prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedFourYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedFourYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Four year prior",
        "label": "Financing Receivable, Year Five, Originated, Four Years before Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated four years prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedInCurrentFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedInCurrentFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Current year",
        "verboseLabel": "Term Extension",
        "label": "Financing Receivable, Year One, Originated, Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated in current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedInFiscalYearBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedInFiscalYearBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Prior year",
        "label": "Financing Receivable, Year Two, Originated, Fiscal Year before Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated in fiscal year prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedThreeYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedThreeYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Three year prior",
        "label": "Financing Receivable, Year Four, Originated, Three Years before Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated three years prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedTwoYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedTwoYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Two year prior",
        "label": "Financing Receivable, Year Three, Originated, Two Years before Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated two years prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "cofs_FinancingReceivableOriginatedWriteoffsFiveOrMoreYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsFiveOrMoreYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable originated writeoffs five or more years before latest fiscal year.",
        "label": "Financing Receivable Originated Writeoffs Five or More Years Before Latest Fiscal Year",
        "terseLabel": "Current year-to-date gross write-offs, Prior",
        "totalLabel": "Financing Receivable Originated Writeoffs Five or More Years Before Latest Fiscal Year, Total",
        "verboseLabel": "Financing Receivable Originated Writeoffs Five or More Years Before Latest Fiscal Year, Total"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsFourYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsFourYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Four year prior",
        "documentation": "Financing receivable originated writeoffs four years before latest fiscal year.",
        "label": "Financing Receivable Originated Writeoffs Four Years Before Latest Fiscal Year"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsInCurrentFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsInCurrentFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Current year",
        "documentation": "Financing receivable originated writeoffs in current fiscal year.",
        "label": "Financing Receivable Originated Writeoffs in Current Fiscal Year"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsInFiscalYearBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsInFiscalYearBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Prior year",
        "documentation": "Financing receivable originated writeoffs in fiscal year before latest fiscal year.",
        "label": "Financing Receivable Originated Writeoffs in Fiscal Year Before Latest Fiscal Year"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsThreeYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsThreeYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Three year prior",
        "documentation": "Financing receivable originated writeoffs three years before latest fiscal year.",
        "label": "Financing Receivable Originated Writeoffs Three Years Before Latest Fiscal Year"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsTwoYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableOriginatedWriteoffsTwoYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Two year prior",
        "documentation": "Financing receivable originated writeoffs two years before latest fiscal year.",
        "label": "Financing Receivable Originated Writeoffs Two Years Before Latest Fiscal Year"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivablePortfolioSegmentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablePortfolioSegmentAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable Portfolio Segment [Axis]",
        "documentation": "Information by the level at which an entity develops and documents a systematic methodology to determine its allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r193",
      "r197",
      "r198",
      "r373",
      "r374",
      "r718",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r764",
      "r765",
      "r766"
     ]
    },
    "us-gaap_FinancingReceivablePortfolioSegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablePortfolioSegmentDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable Portfolio Segment [Domain]",
        "documentation": "Level at which an entity develops and documents a systematic methodology to determine its allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r193",
      "r197",
      "r198",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r764",
      "r765",
      "r766"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans, 90 Days Past Due and Accruing",
        "label": "Financing Receivable, 90 Days or More Past Due, Still Accruing",
        "documentation": "Amortized cost of financing receivable 90 days or more past due and still accruing. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r184",
      "r384",
      "r724"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Financing Receivable [Axis]",
        "documentation": "Information by class of financing receivable determined on the basis of initial measurement attribute, risk characteristics and method of monitoring and assessing credit risk."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r61",
      "r192",
      "r193",
      "r197",
      "r198",
      "r309",
      "r312",
      "r313",
      "r314",
      "r316",
      "r380",
      "r381",
      "r390",
      "r716",
      "r719",
      "r720",
      "r723",
      "r724",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r764",
      "r765",
      "r766"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentClassOfFinancingReceivableDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentClassOfFinancingReceivableDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Financing Receivable [Domain]",
        "documentation": "Financing receivables determined on the basis of initial measurement attribute, risk characteristics and method of monitoring and assessing credit risk."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r193",
      "r197",
      "r198",
      "r312",
      "r313",
      "r314",
      "r316",
      "r716",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r764",
      "r765",
      "r766"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentNonaccrualStatus",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonaccrual loans",
        "terseLabel": "Total nonaccrual loans",
        "documentation": "Amortized cost of financing receivable on nonaccrual status. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r195",
      "r196",
      "r382"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentPastDueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentPastDueLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Past Due [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r724",
      "r828"
     ]
    },
    "us-gaap_FinancingReceivableRevolving": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRevolving",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Revolving",
        "terseLabel": "Revolving Loans",
        "documentation": "Amortized cost of financing receivable that can be withdrawn, repaid, and redrawn."
       }
      }
     },
     "auth_ref": [
      "r392",
      "r723"
     ]
    },
    "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRevolvingConvertedToTermLoan",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Revolving, Converted to Term Loan",
        "terseLabel": "Term Loans Total",
        "totalLabel": "Term Loans Total",
        "documentation": "Amortized cost of revolving financing receivable converted to term loan."
       }
      }
     },
     "auth_ref": [
      "r393",
      "r723"
     ]
    },
    "cofs_FinancingReceivableTermExtensionAndInterestRateReduction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableTermExtensionAndInterestRateReduction",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable term extension and interest rate reduction.",
        "label": "Financing Receivable Term Extension And Interest Rate Reduction",
        "terseLabel": "Combination: Term extension and interest rate reduction"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableTermExtensionAndPrincipalForgiveness": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableTermExtensionAndPrincipalForgiveness",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable term extension and principal forgiveness.",
        "label": "Financing Receivable Term Extension And Principal Forgiveness",
        "terseLabel": "Combination: Term extension and principal forgiveness"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableTroubledLoanModificationAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableTroubledLoanModificationAmortizedCost",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable troubled loan modification amortized cost.",
        "label": "Financing Receivable Troubled Loan Modification Amortized Cost",
        "terseLabel": "Amortized Cost Basis"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableWriteoffRevolvingConvertedToTermLoan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FinancingReceivableWriteoffRevolvingConvertedToTermLoan",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriteoffOfNotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financing receivable writeoff revolving converted to term loan.",
        "label": "Financing Receivable Writeoff Revolving Converted to Term Loan",
        "terseLabel": "Current year-to-date gross write-offs, Revolving Loans"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivables30To59DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables30To59DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, 30 to 59 Days Past Due [Member]",
        "documentation": "Financial asset more than 29 days past due but fewer than 60 days past due."
       }
      }
     },
     "auth_ref": [
      "r724"
     ]
    },
    "us-gaap_FinancingReceivables60To89DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables60To89DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, 60 to 89 Days Past Due [Member]",
        "documentation": "Financial asset more than 59 days past due but fewer than 90 days past due."
       }
      }
     },
     "auth_ref": [
      "r724"
     ]
    },
    "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Equal to or Greater than 90 Days Past Due [Member]",
        "documentation": "Financial asset equal to or greater than 90 days past due."
       }
      }
     },
     "auth_ref": [
      "r724"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Aging [Axis]",
        "documentation": "Information by period in which financial asset is past due or not past due."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r380",
      "r724"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Aging [Domain]",
        "documentation": "Period in which financial asset is past due or not past due. For past due, element name and standard label in Financial Asset, [numeric lower end] to [numeric higher end] [date measure] Past Due [Member] or Financial Asset, Greater than [low end numeric value] [date measure] Past Due [Member] or Financial Asset, Less than [high end numeric value] [date measure] Past Due [Member] formats."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r380",
      "r724"
     ]
    },
    "us-gaap_FinancingReceivablesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLosses1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivables [Text Block]",
        "terseLabel": "Loans and Allowance for Credit Losses",
        "documentation": "The entire disclosure for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r305",
      "r313",
      "r315",
      "r317",
      "r716"
     ]
    },
    "us-gaap_FiniteLivedCoreDepositsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedCoreDepositsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Core Deposits, Gross",
        "terseLabel": "Core deposit intangible",
        "documentation": "Bank deposits belonging to an acquired bank that can be counted on as a stable source of lending funds. These deposits have the following attributes: predictable costs and low sensitivity to interest rates. This intangible asset is usually amortized over its estimated useful life."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "cofs_ForecastPercentageForChangeInRealGDP": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ForecastPercentageForChangeInRealGDP",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forecast percentage for change in real GDP",
        "label": "Forecast Percentage for change in real G D P",
        "documentation": "Forecast Percentage for change in real G D P."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FourSofrCapAgreementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "FourSofrCapAgreementsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Four SOFR Cap Agreements [Member]",
        "documentation": "Four SOFR cap Agreements."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnDerivativeInstrumentsNetPretax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnDerivativeInstrumentsNetPretax",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "The effects of fair value and cash flow hedging:",
        "label": "Gain (Loss) on Derivative Instruments, Net, Pretax",
        "totalLabel": "Gain (Loss) on Derivative Instruments, Net, Pretax, Total",
        "documentation": "Aggregate net gain (loss) on all derivative instruments recognized in earnings during the period, before tax effects."
       }
      }
     },
     "auth_ref": [
      "r86"
     ]
    },
    "us-gaap_GainLossOnInvestmentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnInvestmentsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss) on Securities [Table Text Block]",
        "terseLabel": "Schedule of Unrealized Gains and Losses on Equity Securities",
        "documentation": "Tabular disclosure of realized and unrealized gain (loss) on investment in security."
       }
      }
     },
     "auth_ref": [
      "r774",
      "r775"
     ]
    },
    "us-gaap_GainLossOnSaleOfLoansAndLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfLoansAndLeases",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Gains on sales of loans",
        "label": "Gain (Loss) on Sale of Loans and Leases",
        "totalLabel": "Gain (Loss) on Sale of Loans and Leases, Total",
        "documentation": "The gains (losses) included in earnings that represent the difference between the sale price and the carrying value of loans and leases that were sold during the reporting period. This element refers to the gain (loss) and not to the cash proceeds of the sales. This element is a noncash adjustment to net income when calculating net cash generated by operating activities using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r781"
     ]
    },
    "us-gaap_GainLossOnSaleOfOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net gains on sales and write downs of other assets",
        "label": "Gain (Loss) on Disposition of Other Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of other assets."
       }
      }
     },
     "auth_ref": [
      "r781"
     ]
    },
    "us-gaap_GainLossOnSalesOfLoansNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSalesOfLoansNet",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gains on sales of loans",
        "totalLabel": "Gain (Loss) on Sales of Loans, Net, Total",
        "documentation": "The net gain (loss) resulting from a sale of loans, including adjustments to record loans classified as held-for-sale at the lower-of-cost-or-market and fair value adjustments to loan held for investment purposes."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r156"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill",
        "totalLabel": "Goodwill, Total",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "periodEndLabel": "Goodwill, Ending Balance",
        "terseLabel": "Goodwill",
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r206",
      "r409",
      "r578",
      "r726",
      "r736",
      "r831",
      "r832"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "terseLabel": "Goodwill",
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined."
       }
      }
     },
     "auth_ref": [
      "r408",
      "r410",
      "r726"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Core Deposit Intangible",
        "documentation": "Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_HedgedAssetDiscontinuedFairValueHedgeCumulativeIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgedAssetDiscontinuedFairValueHedgeCumulativeIncreaseDecrease",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedged Asset, Discontinued Fair Value Hedge, Cumulative Increase (Decrease)",
        "terseLabel": "Cumulative amount of discontinued cash flow hedge",
        "documentation": "Amount of cumulative increase (decrease) in fair value of hedged asset in fair value hedge, attributable to hedged risk, remaining after discontinued hedge."
       }
      }
     },
     "auth_ref": [
      "r469",
      "r735"
     ]
    },
    "us-gaap_HedgingDesignationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Designation [Axis]",
        "documentation": "Information by designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r468"
     ]
    },
    "us-gaap_HedgingDesignationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Designation [Domain]",
        "documentation": "Designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_HedgingRelationshipDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingRelationshipDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Relationship [Domain]",
        "documentation": "Nature or intent of a hedge."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_HeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails2": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesFairValue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, before Allowance for Credit Loss",
        "totalLabel": "Debt Securities, Held-to-Maturity, Amortized Cost, before Allowance for Credit Loss, Total",
        "terseLabel": "Amortized cost, held to maturity",
        "documentation": "Amount, before allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r337",
      "r380",
      "r826"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingGain",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails2": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesFairValue",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Accumulated Unrecognized Gain",
        "terseLabel": "Gross unrealized gains, held to maturity",
        "documentation": "Amount of accumulated unrecognized gain on investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r347"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails2": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesFairValue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Accumulated Unrecognized Loss",
        "negatedLabel": "Gross unrealized losses, held to maturity",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r348"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD1": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized loss, more than 12 months",
        "label": "Debt Securities, Held-to-Maturity, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at amortized cost (held-to-maturity), in continuous loss position for 12 months or longer."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r174"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD1": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized losses",
        "label": "Debt Securities, Held-to-Maturity, Unrealized Loss Position, Accumulated Loss",
        "totalLabel": "Unrealized losses",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at amortized cost (held-to-maturity), in unrealized loss position."
       }
      }
     },
     "auth_ref": [
      "r172"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value",
        "label": "Debt Securities, Held-to-Maturity, Unrealized Loss Position, Fair Value",
        "totalLabel": "Fair value",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), in unrealized loss position."
       }
      }
     },
     "auth_ref": [
      "r171"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD1": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 12 months, unrealized losses",
        "label": "Debt Securities, Held-to-Maturity, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at amortized cost (held-to-maturity), in continuous loss position for less than 12 months."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r174"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 12 months, fair value",
        "label": "Debt Securities, Held-to-Maturity, Continuous Unrealized Loss Position, Less than 12 Months, Fair Value",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), in continuous unrealized loss position for less than 12 months."
       }
      }
     },
     "auth_ref": [
      "r174"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value, more than 12 months",
        "label": "Debt Securities, Held-to-Maturity, Continuous Unrealized Loss Position, 12 Months or Longer, Fair Value",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), in continuous unrealized loss position for 12 months or longer."
       }
      }
     },
     "auth_ref": [
      "r174"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date",
        "terseLabel": "Held to Maturity Securities maturing within amortized cost",
        "totalLabel": "Held to Maturity Securities maturing within amortized cost",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity) with single maturity date and allocated without single maturity date."
       }
      }
     },
     "auth_ref": [
      "r805",
      "r885"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Fair Value",
        "terseLabel": "Fair value, held to maturity",
        "verboseLabel": "Debt securities held-to-maturity fair value",
        "totalLabel": "Fair value, held to maturity",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r346",
      "r579",
      "r590"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity [Table Text Block]",
        "terseLabel": "Schedule of Held to Maturity Securities with Unrealize Losses",
        "documentation": "Tabular disclosure of information about investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808",
      "r809",
      "r810",
      "r811",
      "r812",
      "r813",
      "r814",
      "r815",
      "r816",
      "r817"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesNextRollingTwelveMonthsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesNextRollingTwelveMonthsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling within One Year",
        "terseLabel": "Held to Maturity Securities maturing within Less than 1 Year",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity) with single maturity date and allocated without single maturity date, maturing in next rolling fiscal year following current statement of financial position date. For interim and annual periods when interim period is reported on rolling approach."
       }
      }
     },
     "auth_ref": [
      "r806",
      "r886"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingAfterTenYearsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingAfterTenYearsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling after 10 Years",
        "terseLabel": "Held to Maturity Securities maturing within More than10 Years",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity) with single maturity date and allocated without single maturity date, maturing after rolling tenth fiscal year following current statement of financial position date. For interim and annual periods when interim period is reported on rolling approach."
       }
      }
     },
     "auth_ref": [
      "r809",
      "r889"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingYearSixThroughTenAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingYearSixThroughTenAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling after 5 through 10 Years",
        "terseLabel": "Held to Maturity Securities maturing within 5 Years -10 Years",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity) with single maturity date and allocated without single maturity date, maturing in sixth through tenth rolling fiscal year following current statement of financial position date. For interim and annual periods when interim period is reported on rolling approach."
       }
      }
     },
     "auth_ref": [
      "r808",
      "r888"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingYearTwoThroughFiveAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingYearTwoThroughFiveAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling after One through Five Years",
        "terseLabel": "Held to Maturity Securities maturing within 1 Year -5 Years",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity) with single maturity date and allocated without single maturity date, maturing in second through fifth rolling fiscal year following current statement of financial position date. For interim and annual periods when interim period is reported on rolling approach."
       }
      }
     },
     "auth_ref": [
      "r807",
      "r887"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average Recorded Investment",
        "documentation": "Average amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r56"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income Recognized",
        "documentation": "Amount of interest income recognized that the financing receivables (with related allowance for credit losses and without a related allowance for credit losses) were impaired."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recorded Investment",
        "documentation": "Amount of investment of impaired financing receivables with related allowance for credit losses and without a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableRelatedAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableRelatedAllowance",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Allowance",
        "documentation": "Amount of allowance for credit losses related to recorded investment."
       }
      }
     },
     "auth_ref": [
      "r52"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unpaid Principal Balance",
        "documentation": "Amount of unpaid principal balance of impaired financing receivables with related allowance for credit losses and without related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average Recorded Investment with no related allowance recorded",
        "documentation": "Amount of average investment of impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r56"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income Recognized with no related allowance recorded",
        "documentation": "Amount of interest income, recognized on accrual basis, on financing receivables that are recognized as impaired, for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recorded Investment with no related allowance recorded",
        "documentation": "Amount of investment in impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unpaid Principal Balance with no related allowance recorded",
        "documentation": "Amount of unpaid principal balance of impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average Recorded Investment with an allowance recorded",
        "documentation": "Amount of average investment of impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r56"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income Recognized with an allowance recorded",
        "documentation": "Amount of interest income, recognized on accrual basis, on financing receivables, for which there is a related allowance for credit losses and are recognized as impaired."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recorded Investment with an allowance recorded",
        "documentation": "Amount of investment in impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r50"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unpaid Principal Balance with an allowance recorded",
        "documentation": "Unpaid principal balance of impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_ImpairedFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Impaired Financing Receivables [Table Text Block]",
        "terseLabel": "Schedule of Loans for Impairment and Interest Recognized on Impaired Loans",
        "documentation": "Tabular disclosure of impaired financing receivables."
       }
      }
     },
     "auth_ref": [
      "r51"
     ]
    },
    "cofs_ImpairedLoansFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ImpairedLoansFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Impaired Loans",
        "documentation": "Represents amount of fair value disclosure of impaired loans."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income before income tax",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "terseLabel": "Income before income tax",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r126",
      "r148",
      "r289",
      "r295",
      "r299",
      "r301",
      "r585",
      "r598",
      "r715"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Axis]",
        "documentation": "Information by location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r413",
      "r672"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Domain]",
        "documentation": "Location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r672"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income tax expense",
        "totalLabel": "Income Tax Expense (Benefit), Total",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r187",
      "r264",
      "r265",
      "r293",
      "r450",
      "r455",
      "r607"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes Paid, Net",
        "totalLabel": "Income Taxes Paid, Net, Total",
        "terseLabel": "Cash paid for income taxes",
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes."
       }
      }
     },
     "auth_ref": [
      "r40"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInDeposits",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Deposits",
        "totalLabel": "Increase (Decrease) in Deposits, Total",
        "terseLabel": "Net change in deposits",
        "documentation": "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r114"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net change in:",
        "label": "Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other assets",
        "label": "Increase (Decrease) in Other Operating Assets",
        "totalLabel": "Increase (Decrease) in Other Operating Assets, Total",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other liabilities",
        "label": "Increase (Decrease) in Other Operating Liabilities",
        "totalLabel": "Increase (Decrease) in Other Operating Liabilities, Total",
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plus dilutive stock options and restricted stock units",
        "terseLabel": "Plus dilutive stock options and restricted stock units",
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method."
       }
      }
     },
     "auth_ref": [
      "r272",
      "r273",
      "r274",
      "r283",
      "r445"
     ]
    },
    "us-gaap_InformationTechnologyAndDataProcessing": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InformationTechnologyAndDataProcessing",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Data processing",
        "documentation": "The amount of expenses incurred in the period for information technology and data processing products and services."
       }
      }
     },
     "auth_ref": [
      "r129"
     ]
    },
    "us-gaap_InsuranceCommissionsAndFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InsuranceCommissionsAndFees",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insurance and investment commissions",
        "documentation": "Income from agency and brokerage operations (includes sales of annuities and supplemental contracts); service charges, commissions, and fees from the sale of insurance and related services; and management fees from separate accounts, deferred annuities, and universal life products."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "cofs_InterchangeIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "InterchangeIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interchange Income [Member]",
        "documentation": "Represents information related to interchange income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndDividendIncomeOperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeOperating",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total interest income",
        "label": "Interest and Dividend Income, Operating",
        "documentation": "Represents the total of interest and dividend income, including any amortization and accretion (as applicable) of discounts and premiums, earned from (1) loans and leases whether held-for-sale or held-in-portfolio; (2) investment securities; (3) federal funds sold; (4) securities purchased under agreements to resell; (5) investments in banker's acceptances, commercial paper, or certificates of deposit; (6) dividend income; or (7) other investments not otherwise specified herein."
       }
      }
     },
     "auth_ref": [
      "r151",
      "r901"
     ]
    },
    "us-gaap_InterestAndDividendIncomeOperatingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeOperatingAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest income"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndDividendIncomeSecuritiesByTaxableStatusAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeSecuritiesByTaxableStatusAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndFeeIncomeLoansAndLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndFeeIncomeLoansAndLeases",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans, including fees",
        "label": "Loans, including fees",
        "totalLabel": "Interest and Fee Income, Loans and Leases, Total",
        "documentation": "The aggregate interest and fee income generated by: (1) loans the Entity has positive intent and ability to hold for the foreseeable future, or until maturity or payoff, including commercial and consumer loans, whether domestic or foreign, which may consist of: (a) industrial and agricultural; (b) real estate; and (c) real estate construction loans; (d) trade financing; (e) lease financing; (f) home equity lines-of-credit; (g) automobile and other vehicle loans; and (h) credit card and other revolving-type loans and (2) loans and leases held-for-sale which may include mortgage loans, direct financing, and sales-type leases."
       }
      }
     },
     "auth_ref": [
      "r150"
     ]
    },
    "us-gaap_InterestBearingDepositLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDepositLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest-Bearing Deposit Liabilities",
        "totalLabel": "Interest-Bearing Deposit Liabilities, Total",
        "terseLabel": "Deposits - interest-bearing",
        "verboseLabel": "Interest-bearing deposits",
        "documentation": "The aggregate of all domestic and foreign interest-bearing deposit liabilities."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "us-gaap_InterestBearingDepositsInBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDepositsInBanks",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest-Bearing Deposits in Banks and Other Financial Institutions",
        "terseLabel": "Time deposits in other financial institutions",
        "documentation": "For banks and other depository institutions (including Federal Reserve Banks, if applicable): Interest-bearing deposits in other financial institutions for relatively short periods of time including, for example, certificates of deposits, which are presented separately from cash on the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r107",
      "r112"
     ]
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total interest expense",
        "label": "Interest Expense",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r163",
      "r230",
      "r292",
      "r530",
      "r673",
      "r744",
      "r895"
     ]
    },
    "us-gaap_InterestExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpenseDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseDeposits",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense, Deposits",
        "terseLabel": "Deposits",
        "totalLabel": "Interest Expense, Deposits, Total",
        "documentation": "Aggregate amount of interest expense on all deposits."
       }
      }
     },
     "auth_ref": [
      "r162"
     ]
    },
    "us-gaap_InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesLongTerm": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesLongTerm",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advances from Federal Home Loan Bank",
        "label": "Interest Expense, Federal Home Loan Bank and Federal Reserve Bank Advances, Long-Term",
        "documentation": "Interest expense incurred during the reporting period on long-term borrowings associated with Federal Home Loan Bank and Federal Reserve Bank advances."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense [Member]",
        "documentation": "Primary financial statement caption encompassing interest expense."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_InterestExpenseOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseOther",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Interest Expense, Other",
        "documentation": "Amount of interest expense classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestIncomeExpenseAfterProvisionForLoanLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeExpenseAfterProvisionForLoanLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income (Expense), after Provision for Loan Loss",
        "totalLabel": "Net interest income after provision",
        "terseLabel": "Net interest income after provision",
        "documentation": "Amount of interest income or expense, including any amortization and accretion (as applicable) of discounts and premiums, including consideration of the provisions for loan, lease, credit, and other related losses."
       }
      }
     },
     "auth_ref": [
      "r154"
     ]
    },
    "us-gaap_InterestIncomeExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeExpenseNet",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestIncomeExpenseAfterProvisionForLoanLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net interest income",
        "label": "Interest Income (Expense), Net",
        "documentation": "The net amount of operating interest income (expense)."
       }
      }
     },
     "auth_ref": [
      "r152"
     ]
    },
    "us-gaap_InterestIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income [Member]",
        "documentation": "Primary financial statement caption in which reported facts about interest income have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestIncomeSecuritiesTaxExempt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeSecuritiesTaxExempt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax exempt",
        "documentation": "Amount of operating interest income, including amortization and accretion of premiums and discounts, on securities exempt from state, federal and other income tax."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r189",
      "r190"
     ]
    },
    "us-gaap_InterestIncomeSecuritiesTaxable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeSecuritiesTaxable",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Taxable",
        "documentation": "Amount of operating interest income, including amortization and accretion of premiums and discounts, on securities subject to state, federal and other income tax."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r189",
      "r190"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "terseLabel": "Cash paid for interest",
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount."
       }
      }
     },
     "auth_ref": [
      "r238",
      "r241",
      "r242"
     ]
    },
    "cofs_InterestRateContractHedgedItemsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "InterestRateContractHedgedItemsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Rate Contract, Hedged Items [Member]",
        "documentation": "Interest Rate Contract, Hedged Items."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestRateContractMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestRateContractMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Rate Derivative Contracts",
        "label": "Interest Rate Contract [Member]",
        "documentation": "Derivative instrument whose primary underlying risk is tied to the right to receive or pay a sum of money at a given interest rate."
       }
      }
     },
     "auth_ref": [
      "r705",
      "r709",
      "r730"
     ]
    },
    "cofs_InterestRateLockCommitmentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "InterestRateLockCommitmentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest rate lock commitments",
        "documentation": "Represents fair value portion of interest rate lock commitments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InternalCreditAssessmentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalCreditAssessmentAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Internal Credit Assessment [Axis]",
        "documentation": "Information by entity-defined rating."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r470",
      "r722",
      "r723",
      "r829"
     ]
    },
    "us-gaap_InternalCreditAssessmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalCreditAssessmentDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Internal Credit Assessment [Domain]",
        "documentation": "Entity defined credit risk rating."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_InvestmentCommissionIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "InvestmentCommissionIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investment Commission Income [Member]",
        "documentation": "Represents information related to investment commission income."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_InvestmentInEquityMethodAndJointVenturesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "InvestmentInEquityMethodAndJointVenturesPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Investment in Equity Method and Joint Ventures [Policy Text Block]",
        "label": "Investment in Equity Method and Joint Ventures [Policy Text Block]",
        "terseLabel": "Investment in Equity Method and Joint Ventures"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Investments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Investments",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Available for Sale",
        "label": "Investments",
        "totalLabel": "Investments, Total",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all investments."
       }
      }
     },
     "auth_ref": [
      "r589"
     ]
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "terseLabel": "Schedule of Maturities of Securities",
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecurities1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments in Debt and Marketable Equity Securities (and Certain Trading Assets) Disclosure [Text Block]",
        "terseLabel": "Securities",
        "documentation": "The entire disclosure for investments in certain debt and equity securities."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r164",
      "r166",
      "r191",
      "r320",
      "r323",
      "r509",
      "r510"
     ]
    },
    "us-gaap_LaborAndRelatedExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LaborAndRelatedExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Salaries and benefits",
        "documentation": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit."
       }
      }
     },
     "auth_ref": [
      "r776"
     ]
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r245",
      "r356",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r461",
      "r462",
      "r463",
      "r516",
      "r648",
      "r714",
      "r746",
      "r835",
      "r881",
      "r882"
     ]
    },
    "us-gaap_LiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities",
        "label": "Liabilities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and shareholders\u2019 equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r123",
      "r145",
      "r596",
      "r736",
      "r782",
      "r823",
      "r879"
     ]
    },
    "us-gaap_LoanRestructuringModificationNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoanRestructuringModificationNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loan Restructuring Modification Name [Axis]",
        "documentation": "Information by name of loan modification, for example, but not limited to, modifications under government programs."
       }
      }
     },
     "auth_ref": [
      "r792"
     ]
    },
    "us-gaap_LoanRestructuringModificationNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoanRestructuringModificationNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loan Restructuring Modification Name [Domain]",
        "documentation": "Name of loan modification, for example, but not limited to, modifications under government programs."
       }
      }
     },
     "auth_ref": [
      "r792"
     ]
    },
    "cofs_LoanSwapsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "LoanSwapsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loan Swaps [Member]",
        "documentation": "Loan swaps."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansAndLeasesReceivableAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableAllowance",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": -1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "label": "Loans and Leases Receivable, Allowance",
        "terseLabel": "Allowance for loan losses (Note 3)",
        "negatedLabel": "Allowance for credit losses (Note 3)",
        "documentation": "Amount of allowance to cover probable credit losses on loans and leases. Includes carryover of or adjustments to the allowance for loan losses in connection with business combinations. Excludes allowance for loans and leases covered under loss sharing agreements."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r17",
      "r66",
      "r755"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableGrossCarryingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableGrossCarryingAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Loans (Note 3)",
        "terseLabel": "Core loans (Note 3)",
        "label": "Loans and Leases Receivable, Gross",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r135"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableGrossCarryingAmountCovered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableGrossCarryingAmountCovered",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Core loans (Note 3)",
        "label": "Loans and Leases Receivable, Gross, Carrying Amount, Covered",
        "documentation": "Aggregate gross carrying amount of loans and leases receivable covered by loss sharing agreements."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetOfDeferredIncome",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans",
        "label": "Loans and Leases Receivable, Net of Deferred Income",
        "totalLabel": "Loans",
        "documentation": "Amount before allowance and after deduction of deferred interest and fees, unamortized costs and premiums and discounts from face amounts, of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Excludes loans and leases covered under loss sharing agreements."
       }
      }
     },
     "auth_ref": [
      "r58",
      "r135"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableNetReportedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetReportedAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loans, net",
        "label": "Loans and Leases Receivable, Net Amount",
        "documentation": "Amount after allowance and deduction of deferred interest and fees, unamortized costs and premiums and discounts from face amounts, of loans and leases held in portfolio, including but not limited to, commercial and consumer loans. Excludes loans and leases covered under loss sharing agreements and loans held for sale."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r135"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetReportedAmountCovered",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total loans held for investment (Note 3)",
        "label": "Loans and Leases Receivable, Net Reported Amount, Covered",
        "documentation": "Net carrying amount of loans and leases receivable covered by loss sharing agreements."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_LoansAndLeasesReceivableOtherFinancialInstitution": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "LoansAndLeasesReceivableOtherFinancialInstitution",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans to other financial institutions (Note 3)",
        "label": "Loans to other financial institutions",
        "documentation": "The amount related to loans to other financial institutions."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_LoansByTypeAsPercentageOfPortfolioTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "LoansByTypeAsPercentageOfPortfolioTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Loans by type as percentage of portfolio.",
        "label": "Loans by Type as Percentage of Portfolio [Table Text Block]",
        "terseLabel": "Loans by Type as Percentage of Portfolio"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansHeldForSaleFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansHeldForSaleFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans held for sale",
        "label": "Loan, Held-for-Sale, Fair Value Disclosure",
        "documentation": "Fair value portion of loans held-for-sale including, but not limited to, mortgage loans and finance receivables."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansReceivableFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansReceivableFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans, net",
        "label": "Loans, net",
        "documentation": "Fair value portion of loan receivable, including, but not limited to, mortgage loans held for investment, finance receivables held for investment, policy loans on insurance contracts."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_LoansReceivableHeldForSaleNetNotPartOfDisposalGroup": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansReceivableHeldForSaleNetNotPartOfDisposalGroup",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance",
        "periodStartLabel": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance, Beginning Balance",
        "periodEndLabel": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance, Ending Balance",
        "terseLabel": "Loans held for sale",
        "documentation": "Amount, after valuation allowance, of financing receivable held for sale and not part of disposal group. Excludes loan covered under loss sharing agreement and loan classified as investment in debt security."
       }
      }
     },
     "auth_ref": [
      "r306",
      "r704"
     ]
    },
    "cofs_LoansToOtherFinancialInstitutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "LoansToOtherFinancialInstitutionsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans To Other Financial Institutions [Member]",
        "documentation": "Loans To Other Financial Institutions Member",
        "terseLabel": "Loans to other financial institutions [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MarketableSecuritiesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MarketableSecuritiesPolicy",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities",
        "label": "Marketable Securities, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for investment classified as marketable security."
       }
      }
     },
     "auth_ref": [
      "r115"
     ]
    },
    "us-gaap_MarketingAndAdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MarketingAndAdvertisingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising and promotional",
        "totalLabel": "Marketing and Advertising Expense, Total",
        "documentation": "The total expense recognized in the period for promotion, public relations, and brand or product advertising."
       }
      }
     },
     "auth_ref": [
      "r128"
     ]
    },
    "us-gaap_Maturity30To90DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Maturity30To90DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maturity 30 to 90 Days [Member]",
        "terseLabel": "30-89 days [Member]",
        "documentation": "Maturity period that is more than 29 days but fewer than 91 days from the reporting date for repurchase agreements and similar transactions, for example, but not limited to, securities lending arrangements."
       }
      }
     },
     "auth_ref": [
      "r247"
     ]
    },
    "us-gaap_MaturityOver90DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MaturityOver90DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maturity Greater than 90 Days [Member]",
        "terseLabel": "Greater than 90 days [Member]",
        "documentation": "Maturity period of over 90 days from the reporting date for repurchase agreements and similar transactions, for example, but not limited to, securities lending arrangements."
       }
      }
     },
     "auth_ref": [
      "r248"
     ]
    },
    "us-gaap_MaturityUpTo30DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MaturityUpTo30DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maturity Less than 30 Days [Member]",
        "terseLabel": "Current [Member]",
        "documentation": "Maturity period of up to 30 days from the reporting date for repurchase agreements and similar transactions, for example, but not limited to, securities lending arrangements."
       }
      }
     },
     "auth_ref": [
      "r246"
     ]
    },
    "us-gaap_MortgageBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MortgageBackedSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Collateralized Mortgage-Backed Securities [Member]",
        "terseLabel": "Mortgage-backed [Member]",
        "documentation": "Securities collateralized by mortgage loans."
       }
      }
     },
     "auth_ref": [
      "r730",
      "r731",
      "r732",
      "r798",
      "r799",
      "r800",
      "r805",
      "r813",
      "r892"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r240"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r240"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r131",
      "r132",
      "r133"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income",
        "terseLabel": "Net income",
        "label": "Net Income (Loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r127",
      "r133",
      "r149",
      "r204",
      "r222",
      "r225",
      "r229",
      "r245",
      "r254",
      "r258",
      "r259",
      "r260",
      "r261",
      "r264",
      "r265",
      "r279",
      "r289",
      "r295",
      "r299",
      "r301",
      "r356",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r495",
      "r516",
      "r599",
      "r669",
      "r686",
      "r687",
      "r715",
      "r744",
      "r835"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasic",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income",
        "label": "Net Income (Loss) Available to Common Stockholders, Basic",
        "totalLabel": "Net Income (Loss) Available to Common Stockholders, Basic, Total",
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders."
       }
      }
     },
     "auth_ref": [
      "r234",
      "r258",
      "r259",
      "r260",
      "r261",
      "r268",
      "r269",
      "r280",
      "r283",
      "r289",
      "r295",
      "r299",
      "r301",
      "r715"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersDiluted": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAvailableToCommonStockholdersDiluted",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income",
        "label": "Net Income (Loss) Available to Common Stockholders, Diluted",
        "totalLabel": "Net Income (Loss) Available to Common Stockholders, Diluted, Total",
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities, and addition from assumption of issuance of common shares for dilutive potential common shares; of income (loss) available to common shareholders."
       }
      }
     },
     "auth_ref": [
      "r234",
      "r270",
      "r275",
      "r276",
      "r277",
      "r278",
      "r280",
      "r283"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recent Accounting Pronouncements",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_NonaccrualFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "NonaccrualFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Nonaccrual financing receivable.",
        "label": "Nonaccrual Financing Receivable [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NondesignatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NondesignatedMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Not Designated as Hedging Instrument [Member]",
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_NoninterestBearingDepositLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestBearingDepositLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest-Bearing Deposit Liabilities",
        "totalLabel": "Noninterest-Bearing Deposit Liabilities, Total",
        "terseLabel": "Deposits - noninterest-bearing",
        "verboseLabel": "Noninterest-bearing deposits",
        "documentation": "The aggregate amount of all domestic and foreign noninterest-bearing deposits liabilities held by the entity."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "us-gaap_NoninterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total noninterest expense",
        "label": "Noninterest Expense",
        "documentation": "Total aggregate amount of all noninterest expense."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "us-gaap_NoninterestExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestExpenseAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoninterestIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total noninterest income",
        "label": "Noninterest Income",
        "documentation": "The total amount of noninterest income which may be derived from: (1) fees and commissions; (2) premiums earned; (3) insurance policy charges; (4) the sale or disposal of assets; and (5) other sources not otherwise specified."
       }
      }
     },
     "auth_ref": [
      "r157"
     ]
    },
    "us-gaap_NoninterestIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncomeAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest income"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoninterestIncomeOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncomeOther",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other",
        "label": "Noninterest Income, Other",
        "documentation": "Represents the total of noninterest income derived from certain activities and assets including (for example): (1) venture capital investments; (2) bank owned life insurance; (3) foreign currency transactions; and (4) mortgage servicing rights."
       }
      }
     },
     "auth_ref": [
      "r157"
     ]
    },
    "us-gaap_NoninterestIncomeOtherOperatingIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncomeOtherOperatingIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noninterest income within the scope of other GAAP topics",
        "label": "Noninterest Income, Other Operating Income",
        "documentation": "Amount of revenue earned, classified as other, excluding interest income."
       }
      }
     },
     "auth_ref": [
      "r125",
      "r147"
     ]
    },
    "us-gaap_NonperformingFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NonperformingFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonperforming Financial Instruments [Member]",
        "documentation": "Category status of financial instruments in which payments are past due in accordance with the terms of the contract. Financial instruments include, but are not limited to, financing receivables, loans, debt, and investments."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_NoteToFinancialStatementDetailsTextual": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "NoteToFinancialStatementDetailsTextual",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note To Financial Statement Details Textual",
        "documentation": "Note To Financial Statement Details Textual"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NotesReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NotesReceivableGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, before Allowance for Credit Loss",
        "terseLabel": "Revolving",
        "totalLabel": "Grand Total",
        "documentation": "Amortized cost, before allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r185",
      "r194",
      "r195",
      "r210",
      "r380",
      "r391",
      "r723",
      "r724",
      "r763",
      "r826"
     ]
    },
    "cofs_NotesToFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "NotesToFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Notes To Financial Statements [Abstract]",
        "documentation": "Notes To Financial Statements Abstract"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_NumberOfDaysIndividuallyEvaluation": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "NumberOfDaysIndividuallyEvaluation",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of Days Individually Evaluation",
        "label": "Number of Days Individually Evaluation",
        "terseLabel": "Number of days individually evaluation"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OCIDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAOCIForAmortizationOfNetUnrealizedGainLossTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OCIDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAOCIForAmortizationOfNetUnrealizedGainLossTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization of net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity, Income tax benefit (expense)",
        "documentation": "The amount of tax from oci debt securities transfer to held to maturity from available for sale adjustment from aoci for amortization of net unrealized gain (loss)",
        "label": "Amortization of net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity, Income tax benefit (expense)",
        "terseLabel": "Amortization of net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity, Income tax benefit (expense)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OccupancyNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OccupancyNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Occupancy and equipment",
        "documentation": "Amount of net occupancy expense that may include items, such as depreciation of facilities and equipment, lease expenses, property taxes and property and casualty insurance expense."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r158",
      "r176"
     ]
    },
    "us-gaap_OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity",
        "label": "OCI, Debt Securities, Available-for-Sale, Transfer to Held-to-Maturity, Adjustment from AOCI for Amortization of Gain (Loss), before Tax",
        "documentation": "Amount, before tax, of adjustment from accumulated other comprehensive income (loss) for amortization of gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) from transfer to investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r795"
     ]
    },
    "us-gaap_OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity,Income tax benefit (expense)",
        "label": "OCI, Debt Securities, Available-for-Sale, Transfer to Held-to-Maturity, Adjustment from AOCI for Amortization of Gain (Loss), Tax",
        "documentation": "Amount of tax expense (benefit) on adjustment from accumulated other comprehensive income (loss) for amortization of gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) from transfer to investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r795"
     ]
    },
    "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrealized loss on held to maturity securities, net of tax",
        "label": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on held-to-maturity securities recognized in other comprehensive income."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "cofs_OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax",
        "documentation": "Amount, before tax, of adjustment from accumulated other comprehensive income (loss) for amortization of gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) from transfer to investment in debt security measured at amortized cost (held-to-maturity).",
        "negatedLabel": "Amortization of net unrealized (gains) losses on securities transferred from available-for-sale to held-to-maturity"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OneSofrCapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OneSofrCapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "One SOFR Cap Agreement [Member]",
        "documentation": "One SOFR Cap Agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets",
        "totalLabel": "Other Assets, Total",
        "terseLabel": "Other assets",
        "documentation": "Amount of assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r142",
      "r207",
      "r591",
      "r746"
     ]
    },
    "us-gaap_OtherAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets [Member]",
        "documentation": "Primary financial statement caption encompassing other assets."
       }
      }
     },
     "auth_ref": [
      "r85",
      "r98"
     ]
    },
    "cofs_OtherChargesAndFeesForCustomerServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherChargesAndFeesForCustomerServicesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Charges and Fees for Customer Services [Member]",
        "documentation": "Represents information related to other charges and fees for customer services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrealized gain (loss) on available-for-sale securities, net of tax",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r217",
      "r218"
     ]
    },
    "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: amortization of net unrealized (gains) losses included in net income",
        "label": "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax",
        "documentation": "Amount, before tax, of reclassification of amortization of net unrealized gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: amortization of net unrealized (gains) losses included in net income, Income tax benefit (expense)",
        "negatedLabel": "Amortization of net unrealized (gains) losses included in net income, Income tax benefit (expense)",
        "label": "Less: amortization of net unrealized (gains) losses included in net income, Income tax benefit (expense)",
        "documentation": "The amount of tax on other comprehensive income (loss) cash flow hedge amortization of net unrealized gain (loss) reclassification."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification and Tax",
        "totalLabel": "Unrealized gain (loss) on cash flow hedge instruments, net of tax",
        "documentation": "Amount, after tax and reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r215",
      "r218"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax",
        "terseLabel": "Change in net unrealized gain (loss) on cash flow hedge",
        "documentation": "Amount, before tax and reclassification, of gain (loss) from derivative instrument designated and qualifying cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r215",
      "r218",
      "r466",
      "r467",
      "r472"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification, Tax",
        "negatedLabel": "Change in net unrealized gain (loss) on cash flow hedge, Income tax benefit (expense)",
        "documentation": "Amount, before reclassification, of tax expense (benefit) for gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r219"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: reclassification adjustment for net (gain) loss on cash flow hedge",
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), Reclassification, before Tax",
        "documentation": "Amount, before tax, of reclassification of gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r183",
      "r218",
      "r220"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: reclassification adjustment for net (gain) loss on cash flow hedge,Income tax benefit (expense)",
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), Reclassification, Tax",
        "negatedLabel": "Less: reclassification adjustment for net (gain) loss on cash flow hedge,Income tax benefit (expense)",
        "documentation": "Amount of tax expense (benefit) for reclassification of gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r219"
     ]
    },
    "cofs_OtherComprehensiveIncomeLossFairValueHedgeSecuritiesGainLossReclassificationBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherComprehensiveIncomeLossFairValueHedgeSecuritiesGainLossReclassificationBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other comprehensive income loss fair value hedge securities gain loss reclassification before tax.",
        "label": "Other Comprehensive Income Loss Fair Value Hedge Securities Gain Loss Reclassification Before Tax",
        "terseLabel": "Less: reclassification adjustment for net (gain) loss for fair value hedge"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other comprehensive income (loss)",
        "totalLabel": "Other comprehensive income (loss), net of tax",
        "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r26",
      "r223",
      "r226",
      "r231",
      "r521",
      "r522",
      "r527",
      "r581",
      "r600",
      "r771",
      "r772"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other comprehensive income:",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: reclassification adjustment for net (gain) loss included in net income",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, before Tax",
        "documentation": "Amount before tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r124",
      "r221",
      "r354"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: reclassification adjustment for net (gain) loss included in net income, Income tax benefit (expense)",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Tax",
        "documentation": "Amount of tax expense (benefit) of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "cofs_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: reclassification adjustment for net (gain) loss for fair value hedge",
        "label": "Other Comprehensive Income Loss Reclassification Adjustment From AOCI For Available For Sale Securities Fair Value Hedge Before Tax",
        "documentation": "Other comprehensive income (loss), reclassification adjustment from aoci for available-for-sale securities, fair value hedge, before tax."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: reclassification adjustment for net (gain) loss for fair value hedge, Income tax benefit (expense)",
        "label": "Other Comprehensive Income Loss Reclassification Adjustment From AOCI For Available For Sale Securities Fair Value Hedge Tax",
        "documentation": "Other comprehensive income (loss), reclassification adjustment from aoci for available-for-sale securities, fair value hedge, tax."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reclassification of unrealized gain (loss) upon transfer of securities from available-for-sale to held-to-maturity",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Investment Transferred from Available-for-Sale to Equity Method, before Tax",
        "documentation": "Amount, before tax, of reclassification adjustment from accumulated other comprehensive income (loss) for unrealized gain (loss) of investment classified as available-for-sale transferred to equity method."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r221"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reclassification of unrealized gain (loss) upon transfer of securities from available-for-sale to held-to-maturity,Income tax benefit (expense)",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Investment Transferred from Available-for-Sale to Equity Method, Tax",
        "documentation": "Amount of tax expense (benefit) for reclassification adjustment from accumulated other comprehensive income (loss) for unrealized gain (loss) of investment classified as available-for-sale transferred to equity method."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in net unrealized gain (loss) on available-for-sale securities",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment and Tax",
        "documentation": "Amount, before tax and adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r218",
      "r354"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Change in net unrealized gain (loss) on available-for-sale securities, Income tax benefit (expense)",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax",
        "documentation": "Amount, before adjustment, of tax expense (benefit) for unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r217"
     ]
    },
    "us-gaap_OtherInterestAndDividendIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherInterestAndDividendIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other",
        "documentation": "Amount, after discount, accretion and premium amortization, of interest income and dividend income classified as other."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_OtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities",
        "totalLabel": "Other Liabilities, Total",
        "terseLabel": "Other liabilities",
        "documentation": "Amount of liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r588",
      "r644",
      "r645",
      "r746",
      "r894"
     ]
    },
    "us-gaap_OtherNoninterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNoninterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other",
        "label": "Other Noninterest Expense",
        "documentation": "Amount of noninterest expense classified as other."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "us-gaap_OtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherRealEstate",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Real Estate",
        "totalLabel": "Other Real Estate, Total",
        "periodStartLabel": "Other Real Estate, Beginning Balance",
        "periodEndLabel": "Other Real Estate, Ending Balance",
        "terseLabel": "Other real estate owned, net",
        "documentation": "Carrying amount of other real estate not separately disclosed, including, but not limited to, real estate investments, real estate loans that qualify as investments in real estate, and premises that are no longer used in operations may also be included in real estate owned. This does not include real estate assets taken in settlement of troubled loans through surrender or foreclosure."
       }
      }
     },
     "auth_ref": [
      "r108"
     ]
    },
    "cofs_OtherRealEstateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "OtherRealEstateFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Real Estate Fair Value",
        "verboseLabel": "Other Real Estate",
        "terseLabel": "Other Real Estate",
        "documentation": "Represents fair value of other real estate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PassMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PassMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pass [Member]",
        "documentation": "A category of financing receivables not considered to be special mention, substandard, doubtful, and loss receivables."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_PastDue30DaysOrMoreMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PastDue30DaysOrMoreMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Past Due 30 Days or More [Member]",
        "documentation": "Related to past due 30 days or more."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PastDueFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PastDueFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Past Due [Table Text Block]",
        "terseLabel": "Aging Analysis of Loans by Loan Category",
        "documentation": "Tabular disclosure of aging analysis for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r61",
      "r724",
      "r828"
     ]
    },
    "cofs_PayFixedSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PayFixedSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay Fixed Swap Agreement [Member]",
        "documentation": "Pay Fixed Swap Agreement."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PayFixedSwapAgreementsExpiringIn2032Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PayFixedSwapAgreementsExpiringIn2032Member",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Pay fixed swap agreements expiring in 2032.",
        "label": "Pay Fixed Swap Agreements Expiring in 2032 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PayFloatingSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PayFloatingSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay Floating Swap Agreement [Member]",
        "documentation": "Pay Floating Swap Agreement."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PaymentsForDerivativeContractsSettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PaymentsForDerivativeContractsSettlements",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Payments for derivative contracts settlements.",
        "label": "Payments for Derivative Contracts Settlements",
        "negatedLabel": "Payments for derivative contracts settlements"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForOriginationOfMortgageLoansHeldForSale": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForOriginationOfMortgageLoansHeldForSale",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Loans originated for sale",
        "label": "Payment for Origination, Loan, Mortgage, Held-for-Sale",
        "documentation": "The amount of cash paid for the origination of mortgages that are held for sale."
       }
      }
     },
     "auth_ref": [
      "r710",
      "r780"
     ]
    },
    "us-gaap_PaymentsForProceedsFromDerivativeInstrumentInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForProceedsFromDerivativeInstrumentInvestingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Proceeds from (payments for) derivative contracts, net",
        "label": "Payments for (Proceeds from) Derivative Instrument, Investing Activities",
        "totalLabel": "Payments for (Proceeds from) Derivative Instrument, Investing Activities, Total",
        "documentation": "The net cash outflow or inflow from derivative instruments during the period, which are classified as investing activities, excluding those designated as hedging instruments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForProceedsFromLoansAndLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForProceedsFromLoansAndLeases",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Loan originations and payments, net",
        "label": "Payments for (Proceeds from) Loans and Leases",
        "totalLabel": "Payments for (Proceeds from) Loans and Leases, Total",
        "documentation": "The net cash outflow or inflow for the increase (decrease) in the beginning and end of period of loan and lease balances which are not originated or purchased specifically for resale. Includes cash payments and proceeds associated with (a) loans held-for-investment, (b) leases held-for-investment, and (c) both."
       }
      }
     },
     "auth_ref": [
      "r584"
     ]
    },
    "us-gaap_PaymentsOfDividends": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfDividends",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Cash dividends",
        "label": "Payments of Dividends",
        "totalLabel": "Payments of Dividends, Total",
        "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Share based compensation withholding obligation",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r237"
     ]
    },
    "us-gaap_PaymentsToAcquireAvailableForSaleSecuritiesDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireAvailableForSaleSecuritiesDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of securities available for sale",
        "label": "Payments to Acquire Debt Securities, Available-for-Sale",
        "documentation": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r235",
      "r322"
     ]
    },
    "us-gaap_PaymentsToAcquireEquitySecuritiesFvNi": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireEquitySecuritiesFvNi",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of equity securities",
        "label": "Payments to Acquire Equity Securities, FV-NI",
        "documentation": "Amount of cash outflow to acquire investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI), classified as investing activity."
       }
      }
     },
     "auth_ref": [
      "r177",
      "r239"
     ]
    },
    "us-gaap_PaymentsToAcquireFederalHomeLoanBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireFederalHomeLoanBankStock",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Federal Home Loan Bank Stock",
        "terseLabel": "Purchase of Federal Home Loan Bank stock",
        "negatedLabel": "Purchase of Federal Home Loan Bank stock",
        "documentation": "Amount of cash outflow to acquire Federal Home Loan Bank (FHLB) stock."
       }
      }
     },
     "auth_ref": [
      "r777"
     ]
    },
    "us-gaap_PaymentsToAcquireHeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireHeldToMaturitySecurities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of securities held to maturity",
        "label": "Payments to Acquire Held-to-Maturity Securities",
        "documentation": "Amount of cash outflow through purchase of long-term held-to-maturity securities."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r322"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Additions to premises and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r130"
     ]
    },
    "cofs_PercentageOfAllowanceForCreditLosses": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PercentageOfAllowanceForCreditLosses",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of allowance for credit losses.",
        "label": "Percentage of Allowance for Credit Losses",
        "terseLabel": "Percentage of allowance for credit losses"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PercentageOfIncreaseDecreaseOfLoansAndLeasesReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PercentageOfIncreaseDecreaseOfLoansAndLeasesReceivable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of increase decrease of loans and leases receivable.",
        "label": "Percentage of Increase Decrease of Loans and Leases Receivable",
        "terseLabel": "Percentage of increase decrease of loans"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PercentageOfLoanSAndLeasesReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PercentageOfLoanSAndLeasesReceivable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of loan s and leases receivable.",
        "label": "Percentage of Loan s and Leases Receivable",
        "terseLabel": "Percentage of loans"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PercentageOfTotalClassOfFinancingReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PercentageOfTotalClassOfFinancingReceivable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "% of Total Class of Financing Receivable",
        "documentation": "Percentage of total class of financing receivable.",
        "label": "Percentage of Total Class of Financing Receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformingFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformingFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Performing Financial Instruments [Member]",
        "documentation": "Category status of financial instruments in which payments are received or paid on a timely basis in accordance with the terms of the contract. Financial instruments include, but are not limited to, financing receivables, loans, debt instruments, and investments."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r862",
      "r863",
      "r864"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r862",
      "r863",
      "r864"
     ]
    },
    "us-gaap_PortionAtFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PortionAtFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Portion at Fair Value Measurement [Member]",
        "axisDefault": "Portion at Fair Value Measurement [Member] [Default]",
        "documentation": "Measured at fair value for financial reporting purposes."
       }
      }
     },
     "auth_ref": [
      "r514"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "Preferred stock, authorized (in shares)",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r649"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Outstanding",
        "periodStartLabel": "Preferred Stock, Shares Outstanding, Beginning Balance",
        "periodEndLabel": "Preferred Stock, Shares Outstanding, Ending Balance",
        "terseLabel": "Preferred stock, outstanding (in shares)",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r649",
      "r667",
      "r898",
      "r899"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Value, Issued",
        "terseLabel": "Preferred stock; shares authorized: 100,000; shares outstanding: none",
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r593",
      "r736"
     ]
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reclassification, Comparability Adjustment [Policy Text Block]",
        "terseLabel": "Reclassifications",
        "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error."
       }
      }
     },
     "auth_ref": [
      "r768"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Issuance of Common Stock",
        "terseLabel": "Issuance of common stock",
        "documentation": "The cash inflow from the additional capital contribution to the entity."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ProceedsFromLifeInsurancePolicies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromLifeInsurancePolicies",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from bank owned life insurance death benefits claim",
        "label": "Proceeds from Life Insurance Policy",
        "documentation": "Amount of cash inflow for proceeds from settlement of corporate-owned life insurance policy, classified as investing activities. Includes, but is not limited to, bank-owned life insurance policy."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r34"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Maturities, Prepayments and Calls of Debt Securities, Available-for-Sale",
        "terseLabel": "Maturities, prepayments and calls of securities available for sale",
        "documentation": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r235",
      "r236",
      "r797"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Maturities, Prepayments and Calls of Held-to-Maturity Securities",
        "terseLabel": "Maturities, prepayments and calls of securities held to maturity",
        "documentation": "The cash inflow associated with the maturity, prepayments and calls (requests for early payments) of debt securities designated as held-to-maturity."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r797"
     ]
    },
    "us-gaap_ProceedsFromRepaymentsOfShortTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromRepaymentsOfShortTermDebt",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from (Repayments of) Short-Term Debt",
        "totalLabel": "Proceeds from (Repayments of) Short-Term Debt, Total",
        "terseLabel": "Net change in short term borrowings",
        "documentation": "The net cash inflow or outflow for borrowing having initial term of repayment within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromSaleOfLoansHeldForSale": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfLoansHeldForSale",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Sale, Loan, Held-for-Sale",
        "totalLabel": "Proceeds from Sale of Loans Held-for-sale, Total",
        "terseLabel": "Proceeds from loan sales",
        "documentation": "The cash inflow resulting from the sale of loans classified as held-for-sale, including proceeds from loans sold through mortgage securitization."
       }
      }
     },
     "auth_ref": [
      "r778",
      "r779"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r302",
      "r574",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r613",
      "r706",
      "r729",
      "r737",
      "r754",
      "r833",
      "r834",
      "r837",
      "r891"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r302",
      "r574",
      "r608",
      "r609",
      "r610",
      "r611",
      "r612",
      "r613",
      "r706",
      "r729",
      "r737",
      "r754",
      "r833",
      "r834",
      "r837",
      "r891"
     ]
    },
    "us-gaap_ProfessionalFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProfessionalFees",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Professional fees",
        "documentation": "A fee charged for services from professionals such as doctors, lawyers and accountants. The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or customer."
       }
      }
     },
     "auth_ref": [
      "r744",
      "r896",
      "r897"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Net",
        "totalLabel": "Property, Plant and Equipment, Net, Total",
        "terseLabel": "Premises and equipment, net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r587",
      "r597",
      "r736"
     ]
    },
    "cofs_ProvisionForCreditLossesOnUnfundedCommitments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ProvisionForCreditLossesOnUnfundedCommitments",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_ProvisionForLoanLeaseAndOtherLosses",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Provision for (reversal of) credit losses on unfunded commitments",
        "documentation": "Provision for credit losses on unfunded commitments.",
        "label": "Provision For Credit Losses On Unfunded Commitments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForLoanLeaseAndOtherLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForLoanLeaseAndOtherLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_InterestIncomeExpenseAfterProvisionForLoanLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "(Reversal of) provision for credit losses",
        "totalLabel": "Net Provision for (reversal of) credit losses expense",
        "label": "Provision for Loan, Lease, and Other Losses",
        "terseLabel": "Provision for credit losses on loans",
        "documentation": "Amount of expense related loan transactions, lease transactions, credit loss from transactions other than loan and lease transactions, and other loss based on assessment of uncollectability from the counterparty to reduce the account to their net realizable value."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r14",
      "r153"
     ]
    },
    "us-gaap_ProvisionForLoanLossesExpensed": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForLoanLossesExpensed",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_ProvisionForLoanLeaseAndOtherLosses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Provision for (reversal of) credit losses on loans",
        "label": "Financing Receivable, Credit Loss, Expense (Reversal)",
        "terseLabel": "Provision",
        "documentation": "Amount of credit loss expense (reversal of expense) for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r376",
      "r580"
     ]
    },
    "cofs_PurchasesWithCreditDeteriorationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PurchasesWithCreditDeteriorationMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Purchases with credit deterioration.",
        "label": "Purchases With Credit Deterioration [Member]",
        "terseLabel": "Purchases With Credit Deterioration [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PurchasesWithoutCreditDeteriorationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "PurchasesWithoutCreditDeteriorationMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Purchases Without Credit Deterioration.",
        "label": "Purchases Without Credit Deterioration [Member]",
        "terseLabel": "Purchases Without Credit Deterioration [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReclassificationTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReclassificationTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reclassification, Type [Axis]",
        "documentation": "Information by type of reclassification adjustment affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error."
       }
      }
     },
     "auth_ref": [
      "r768"
     ]
    },
    "us-gaap_ReclassificationTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReclassificationTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reclassification, Type [Domain]",
        "documentation": "Type of reclassification adjustment affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error."
       }
      }
     },
     "auth_ref": [
      "r768"
     ]
    },
    "cofs_ReclassifiedFromAvailableforsaleSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ReclassifiedFromAvailableforsaleSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reclassified From Available-for-sale Securities [Member]",
        "documentation": "Represents reclassified from available for sale securities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResidentialPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResidentialPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Residential Portfolio Segment [Member]",
        "documentation": "Portfolio segment of the company's total financing receivables related to residential financing receivables."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResidentialRealEstateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResidentialRealEstateMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Residential Real Estate [Member]",
        "label": "Residential Real Estate [Member]",
        "documentation": "Property that is used as a home."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r721",
      "r838"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted Stock Units (RSUs) [Member]",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_RetailLoansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "RetailLoansMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retail Loans [Member]",
        "label": "Retail Loans [Member]",
        "documentation": "Retail loans."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings (Accumulated Deficit)",
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "terseLabel": "Retained earnings",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r120",
      "r137",
      "r595",
      "r620",
      "r625",
      "r629",
      "r650",
      "r736"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r250",
      "r251",
      "r252",
      "r255",
      "r263",
      "r265",
      "r361",
      "r367",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r479",
      "r480",
      "r483",
      "r493",
      "r616",
      "r618",
      "r630",
      "r898"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noninterest income from contracts with customers within the scope of ASC 606",
        "label": "Revenue from Contract with Customer, Including Assessed Tax",
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise."
       }
      }
     },
     "auth_ref": [
      "r290",
      "r291",
      "r294",
      "r297",
      "r298",
      "r302",
      "r303",
      "r304",
      "r435",
      "r436",
      "r574"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Text Block]",
        "terseLabel": "Revenue from Contracts with Customers",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r188",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r437"
     ]
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredLoanPortfolioAndAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfImpairedLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table]",
        "documentation": "Schedule itemizing specific types of trade accounts and notes receivable, and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables."
       }
      }
     },
     "auth_ref": [
      "r30"
     ]
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "terseLabel": "Schedule of Derivatives Instruments in Balance Sheet Location",
        "documentation": "Tabular disclosure of the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r87"
     ]
    },
    "us-gaap_ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Derivatives Instruments Statements of Financial Performance and Financial Position, Location [Table Text Block]",
        "terseLabel": "Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships",
        "documentation": "Tabular disclosure of derivative instruments (including nonderivative instruments that are designated and qualify as hedging instruments) of (a) the location and amount of gains and losses reported in the statement of financial performance and (b) the location and fair value amounts of the instruments reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r84"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Schedule of Basic Earnings Per Share and Diluted Earnings Per Share",
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r789"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivableTroubledDebtRestructuringsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivableTroubledDebtRestructuringsTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Modified [Table]",
        "documentation": "Disclosure of information about financing receivable modified for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r310",
      "r311",
      "r312",
      "r313",
      "r716"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual [Table Text Block]",
        "terseLabel": "Nonaccrual Loans by Loan Category",
        "documentation": "Tabular disclosure of financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r381"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivablesPastDueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivablesPastDueTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Past Due [Table]",
        "documentation": "Disclosure of information about aging analysis for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r724",
      "r828"
     ]
    },
    "us-gaap_ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost",
        "label": "Schedule of Net Investment Hedges, Statements of Financial Performance and Financial Position, Location [Table Text Block]",
        "documentation": "Tabular disclosure for net investment hedges of (a) the location and amount of gains and losses reported in the statement of financial performance and (b) the location and fair value amounts of the instruments reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_ScheduleOfTradingSecuritiesAndOtherTradingAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfTradingSecuritiesAndOtherTradingAssetsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt and Equity Securities, FV-NI [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfTradingSecuritiesAndOtherTradingAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfTradingSecuritiesAndOtherTradingAssetsTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Trading, and Equity Securities, FV-NI [Table]",
        "documentation": "Disclosure of information about investment in debt security measured at fair value with change in fair value recognized in net income (trading) and investment in equity security with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SecuredOvernightFinancingRateSofrOvernightIndexSwapRateMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap that has its variable-rate leg referenced to Secured Overnight Financing Rate (SOFR) with no additional spread over SOFR on variable-rate leg."
       }
      }
     },
     "auth_ref": [
      "r875"
     ]
    },
    "cofs_SecuritiesAvailableForSaleMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "SecuritiesAvailableForSaleMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities available for sale.",
        "label": "Securities Available For Sale [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r747"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r749"
     ]
    },
    "cofs_ServiceChargesAndFeesOnDepositAccountsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ServiceChargesAndFeesOnDepositAccountsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service Charges and Fees on Deposit Accounts [Member]",
        "documentation": "Represents information related to service charges and fees on deposit accounts."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ServicingAssetAtFairValueAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetAtFairValueAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Mortgage loan servicing rights",
        "periodStartLabel": "Servicing Asset at Fair Value, Amount, Beginning Balance",
        "periodEndLabel": "Servicing Asset at Fair Value, Amount, Ending Balance",
        "documentation": "Fair value of an asset representing net future revenue from contractually specified servicing fees, late charges, and other ancillary revenues, in excess of future costs related to servicing arrangements."
       }
      }
     },
     "auth_ref": [
      "r556",
      "r557",
      "r558",
      "r559"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "totalLabel": "Share-Based Payment Arrangement, Noncash Expense, Total",
        "terseLabel": "Compensation expense on employee and director stock purchases, stock options, and restricted stock units",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "cofs_SignificantAccountingPoliciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "SignificantAccountingPoliciesLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Significant accounting policies.",
        "label": "Significant Accounting Policies [Line Items]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_SignificantAccountingPoliciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "SignificantAccountingPoliciesTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Significant accounting policies.",
        "label": "Significant Accounting Policies [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of Significant Accounting Policies",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r244"
     ]
    },
    "us-gaap_SpecialMentionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SpecialMentionMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Special Mention [Member]",
        "documentation": "A category of financing receivables considered to have potential weaknesses that deserve management's close attention. If left uncorrected, those potential weaknesses may result in a deterioration of the repayment prospects for the asset or of the creditor's position at some future date."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r29",
      "r201",
      "r227",
      "r228",
      "r229",
      "r250",
      "r251",
      "r252",
      "r255",
      "r263",
      "r265",
      "r288",
      "r361",
      "r367",
      "r426",
      "r447",
      "r448",
      "r449",
      "r453",
      "r454",
      "r476",
      "r478",
      "r479",
      "r480",
      "r481",
      "r483",
      "r493",
      "r521",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r539",
      "r616",
      "r617",
      "r618",
      "r630",
      "r688"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Line Items]",
        "documentation": "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."
       }
      }
     },
     "auth_ref": [
      "r250",
      "r251",
      "r252",
      "r288",
      "r574",
      "r626",
      "r631",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r649",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r668",
      "r670",
      "r671",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r688",
      "r740"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShare",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomers",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited-parentheticals",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed."
       }
      }
     },
     "auth_ref": [
      "r250",
      "r251",
      "r252",
      "r288",
      "r574",
      "r626",
      "r631",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r649",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r657",
      "r658",
      "r659",
      "r660",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r668",
      "r670",
      "r671",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r688",
      "r740"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "terseLabel": "Effect of employee stock purchases (in shares)",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares issued (in shares)",
        "terseLabel": "Stock issued during period, shares, new issues (in shares)",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137",
      "r627",
      "r688",
      "r702"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted stock units issued (in shares)",
        "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross",
        "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r137"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options exercised and issued (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137",
      "r446"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares issued",
        "terseLabel": "Stock issued during period, value, new issues",
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137",
      "r630",
      "r688",
      "r702",
      "r745"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted stock units issued",
        "label": "Stock Issued During Period, Value, Restricted Stock Award, Gross",
        "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock options exercised and issued",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r29",
      "r137"
     ]
    },
    "us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Repurchase Program, Number of Shares Authorized to be Repurchased",
        "terseLabel": "Stock repurchase program, number of shares authorized to be repurchased (in shares)",
        "documentation": "The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_StockRepurchaseProgramPercentOfStockOutstanding": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "StockRepurchaseProgramPercentOfStockOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "cofs_StockRepurchaseProgramPercentOfStockOutstanding",
        "documentation": "The percent of stock outstanding to be purchased in stock repurchase program.",
        "terseLabel": "Stock repurchase program, percent of stock outstanding"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased (in shares)",
        "label": "Stock Repurchased During Period, Shares",
        "terseLabel": "Stock repurchased during period, shares (in shares)",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137",
      "r628",
      "r688",
      "r703"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Shares repurchased",
        "label": "Stock Repurchased During Period, Value",
        "terseLabel": "Stock repurchased during period, value",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r117",
      "r118",
      "r137",
      "r630",
      "r688",
      "r703",
      "r745"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited",
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total shareholders\u2019 equity",
        "periodStartLabel": "Balance",
        "periodEndLabel": "Balance",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r121",
      "r122",
      "r136",
      "r651",
      "r667",
      "r689",
      "r690",
      "r736",
      "r746",
      "r782",
      "r823",
      "r879",
      "r898"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders' Equity",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity, Policy [Policy Text Block]",
        "terseLabel": "Stock Transactions",
        "documentation": "Disclosure of accounting policy for its capital stock transactions, including dividends and accumulated other comprehensive income."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r691"
     ]
    },
    "us-gaap_SubordinatedDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-balance-sheets-current-period-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subordinated Debt",
        "totalLabel": "Subordinated Debt, Total",
        "periodStartLabel": "Subordinated Debt, Beginning Balance",
        "periodEndLabel": "Subordinated Debt, Ending Balance",
        "terseLabel": "Subordinated debentures",
        "documentation": "Including the current and noncurrent portions, carrying value as of the balance sheet date of subordinated debt (with initial maturities beyond one year or beyond the operating cycle if longer). Subordinated debt places a lender in a lien position behind debt having a higher priority of repayment in liquidation of the entity's assets."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r116",
      "r144",
      "r890"
     ]
    },
    "us-gaap_SubstandardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubstandardMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Substandard [Member]",
        "documentation": "A category of financing receivables that are inadequately protected by the current sound worth and paying capacity of the obligor or of the collateral pledged, if any. Loans so classified have a well-defined weakness or weaknesses that jeopardize the liquidation of the debt. They are characterized by the distinct possibility that the creditor will sustain some loss if the deficiencies are not corrected."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_SummaryOfAmortizedCostBasisOfLoansTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "SummaryOfAmortizedCostBasisOfLoansTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Summary of Amortized Cost Basis of Loans.",
        "label": "Summary of Amortized Cost Basis of Loans [Table Text Block]",
        "terseLabel": "Schedule of Amortized Cost Basis of Loans"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SupplementalCashFlowElementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SupplementalCashFlowElementsAbstract",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplemental disclosures of cash flow information:",
        "label": "Supplemental Cash Flow Elements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SuppliesAndPostageExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SuppliesAndPostageExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplies and postage",
        "totalLabel": "Supplies and Postage Expense, Total",
        "documentation": "The aggregate amount of expenses directly related to the supplies and postage."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "us-gaap_TableTextBlock": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareTables",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Notes Tables",
        "label": "Table Text Block [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_The34015PercentPayFixedSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "The34015PercentPayFixedSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The 3.4015 percent pay fixed swap agreement.",
        "label": "The 3.4015 Percent Pay Fixed Swap Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ThreeSofrCapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "ThreeSofrCapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Three SOFR Cap Agreement [Member]",
        "documentation": "Three SOFR Cap Agreement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradingSecuritiesAndCertainTradingAssetsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradingSecuritiesAndCertainTradingAssetsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Trading, and Equity Securities, FV-NI [Table Text Block]",
        "terseLabel": "Schedule of Gross Unrealized Gains and (Losses)",
        "documentation": "Tabular disclosure of investment in debt security measured at fair value with change in fair value recognized in net income (trading) and investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI)."
       }
      }
     },
     "auth_ref": []
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransferToOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransferToOtherRealEstate",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-cash-flows-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Real Estate Owned, Transfer to Real Estate Owned",
        "terseLabel": "Loans transferred to other real estate owned",
        "documentation": "Value transferred from mortgage loans to real estate owned (REO) in noncash transactions."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r42",
      "r43"
     ]
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r424",
      "r425",
      "r484",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r554",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r601",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r818",
      "r819",
      "r820",
      "r821"
     ]
    },
    "us-gaap_TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Modified [Table Text Block]",
        "terseLabel": "Summary of Trouble Debt Restructurings (TDRs)",
        "documentation": "Tabular disclosure of financing receivable modified for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r790",
      "r791",
      "r792",
      "r793"
     ]
    },
    "cofs_TroubledLoanModificationOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "TroubledLoanModificationOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Troubled loan modification on financing receivables.",
        "label": "Troubled Loan Modification On Financing Receivables [Table Text Block]",
        "terseLabel": "Summary of Troubled Loan Modification (TLMs)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TroubledLoanModificationsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "TroubledLoanModificationsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Troubled Loan Modifications.",
        "label": "Troubled Loan Modifications [Member]",
        "terseLabel": "Troubled Loan Modification [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustFeeIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "TrustFeeIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureRevenueFromContractsWithCustomersScheduleOfNoninterestIncomeSeparatedByRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trust Fee Income [Member]",
        "documentation": "Represents information related to trust fee income."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "TrustIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-income-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trust income",
        "documentation": "The amount of trust income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfAdoptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfAdoptionMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-unaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Domain]",
        "documentation": "Amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r200",
      "r201",
      "r202",
      "r203",
      "r254",
      "r255",
      "r256",
      "r257",
      "r266",
      "r318",
      "r319",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r412",
      "r447",
      "r448",
      "r449",
      "r451",
      "r452",
      "r453",
      "r454",
      "r457",
      "r458",
      "r459",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r496",
      "r511",
      "r512",
      "r517",
      "r518",
      "r519",
      "r520",
      "r528",
      "r529",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r575",
      "r576",
      "r577",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625"
     ]
    },
    "us-gaap_USStatesAndPoliticalSubdivisionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USStatesAndPoliticalSubdivisionsMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "US States and Political Subdivisions Debt Securities [Member]",
        "terseLabel": "State and Municipal [Member]",
        "documentation": "Bonds or similar securities issued by state, city, or local US governments or the agencies operated by state, city, or local governments. Debt securities issued by state governments may include bond issuances of US state authorities including, for example, but not limited to, housing authorities, dormitory authorities, and general obligations while debt securities issued by political subdivisions of US states would include, for example, debt issuances by county, borough, city, or municipal governments."
       }
      }
     },
     "auth_ref": [
      "r730",
      "r892"
     ]
    },
    "us-gaap_USTreasuryAndGovernmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasuryAndGovernmentMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "US Treasury and Government [Member]",
        "terseLabel": "U.S. Government and Federal Agency [Member]",
        "documentation": "This category includes investments in debt securities issued by the United States Department of the Treasury, US Government Agencies and US Government-sponsored Enterprises. Such securities may include treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years), debt securities issued by the Government National Mortgage Association (Ginnie Mae) and debt securities issued by the Federal National Mortgage Association (Fannie Mae) or the Federal Home Loan Mortgage Corporation (Freddie Mac)."
       }
      }
     },
     "auth_ref": [
      "r586",
      "r730",
      "r892"
     ]
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasurySecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleAndHeldtomaturityDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesScheduleOfMaturitiesOfSecuritiesDetails",
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "US Treasury Securities [Member]",
        "terseLabel": "U.S. Treasury Notes and Bonds [Member]",
        "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years)."
       }
      }
     },
     "auth_ref": [
      "r712",
      "r730",
      "r732",
      "r884"
     ]
    },
    "us-gaap_UnallocatedFinancingReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnallocatedFinancingReceivablesMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unallocated Financing Receivables [Member]",
        "documentation": "Financing receivables that have not been allocated to a portfolio segment."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_UnemploymentRateForecastPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "UnemploymentRateForecastPercentage",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unemployment rate forecast percentage",
        "documentation": "Unemployment rate forecast percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnlikelyToBeCollectedFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnlikelyToBeCollectedFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss [Member]",
        "label": "Unlikely to be Collected Financing Receivable [Member]",
        "documentation": "Financing arrangement that represents a contractual right to receive money either on demand or on fixed or determinable dates that are considered uncollectible or of little value. Excludes no recovery or salvage value."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r829"
     ]
    },
    "cofs_UnratedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "UnratedMember",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrated.",
        "label": "Unrated [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of Estimates",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r46",
      "r47",
      "r179",
      "r180",
      "r181",
      "r182"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Axis]",
        "documentation": "Information by type of variable rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_VariableRateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateDomain",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureDerivativeAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Variable Rate [Domain]",
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average common shares outstanding and potentially dilutive shares",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Diluted, Total",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r270",
      "r283"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average common shares outstanding",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r283"
     ]
    },
    "cofs_WriteoffOfNotesReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "WriteoffOfNotesReceivableGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Writeoff of notes receivable gross.",
        "label": "Writeoff of Notes Receivable Gross",
        "terseLabel": "Current year-to-date gross write-offs, Grand Total",
        "totalLabel": "Current year-to-date gross write-offs, Grand Total"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_WriyeoffOfFinancingReceivableRevolving": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "WriyeoffOfFinancingReceivableRevolving",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails2": {
       "parentTag": "cofs_WriteoffOfNotesReceivableGross",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20240331/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Wriyeoff of financing receivable revolving.",
        "label": "Wriyeoff of Financing Receivable Revolving",
        "terseLabel": "Current year-to-date gross write-offs, Term Loans Total",
        "totalLabel": "Current year-to-date gross write-offs, Term Loans Total"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-4-earnings-per-share-computation-of-basic-earnings-per-share-and-diluted-earnings-per-share-details": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "statement-statement-note-4-earnings-per-share-computation-of-basic-earnings-per-share-and-diluted-earnings-per-share-details",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 4 - Earnings Per Share - Computation of Basic Earnings Per Share and Diluted Earnings Per Share (Details)",
        "documentation": "Statement-Statement-Note-4-Earnings-Per-Share-Computation-Of-Basic-Earnings-Per-Share-And-Diluted-Earnings-Per-Share-Details"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-4-earnings-per-share-tables": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "statement-statement-note-4-earnings-per-share-tables",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 4 - Earnings Per Share",
        "documentation": "Statement-Statement-Note-4-Earnings-Per-Share-Tables"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-6-fair-value-measurements-tables": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "statement-statement-note-6-fair-value-measurements-tables",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 6 - Fair Value Measurements",
        "documentation": "Statement-Statement-Note-6-Fair-Value-Measurements-Tables"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-7-revenue-from-contracts-with-customers-revenue-from-contracts-with-customers-details": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "statement-statement-note-7-revenue-from-contracts-with-customers-revenue-from-contracts-with-customers-details",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Revenue from Contracts with Customers - Revenue from Contracts with Customers (Details)",
        "documentation": "Statement-Statement-Note-7-Revenue-From-Contracts-With-Customers-Revenue-From-Contracts-With-Customers-Details"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-7-revenue-from-contracts-with-customers-tables": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20240331",
     "localname": "statement-statement-note-7-revenue-from-contracts-with-customers-tables",
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Revenue From Contracts With Customers",
        "documentation": "Statement-Statement-Note-7-Revenue-From-Contracts-With-Customers-Tables"
       }
      }
     },
     "auth_ref": []
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "SubTopic": "20",
   "Topic": "940",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "33",
   "SubTopic": "10",
   "Topic": "323",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481725/323-10-35-33"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-12"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-15"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21C",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-21C"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-1"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(c)(1)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(c)(2)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(c)(4)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(g)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c),(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(4)",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6A"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482739/220-10-55-15"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-8"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310-10/tableOfContent"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "14A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-14A"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-17"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-29"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-4"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "30",
   "Section": "15",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481906/310-30-15-2"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481696/310-30-50-2"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481696/310-30-50-2"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481696/310-30-50-2"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481696/310-30-50-2"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "320",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//320/tableOfContent"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4K",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4K"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-8"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480401/815-10-55-182"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "25",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480238/815-25-50-1"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "25",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1),(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480238/815-25-50-1"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "820",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-11"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-12"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481309/942-210-45-4"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.10(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.12)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.13(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.15)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "210",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "230",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481160/942-230-45-1"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "320",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-5"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-03(1)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-1"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r130": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r131": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24"
  },
  "r132": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1"
  },
  "r138": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//815/tableOfContent"
  },
  "r139": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r140": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "940",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//940-320/tableOfContent"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r142": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r143": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r145": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r146": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03.13(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r150": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r151": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.1-5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r152": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.10)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r153": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.11)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r154": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.12)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r155": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.13(c),(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r156": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.13(h))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r157": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.13)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r158": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.14(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r159": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.14)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r160": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r161": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r162": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r163": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r164": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//942-320/tableOfContent"
  },
  "r165": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "325",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481026/942-325-45-1"
  },
  "r166": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//946-320/tableOfContent"
  },
  "r167": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r168": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r169": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r170": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r171": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r172": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r173": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r174": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-7"
  },
  "r175": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-8B"
  },
  "r176": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481161/840-30-50-1"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "321",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479567/321-10-45-1"
  },
  "r178": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2"
  },
  "r179": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.M.Q4)",
   "SubTopic": "20",
   "Topic": "326",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483530/326-20-S99-1"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//606/tableOfContent"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1403",
   "Paragraph": "(b)",
   "Publisher": "SEC"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(b)",
   "Publisher": "SEC"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(4)",
   "Publisher": "SEC"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(c)",
   "Publisher": "SEC"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-10"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-12"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-15"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-17A"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(210.5-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 6.B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-5"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-11"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-19"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-1"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-6"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-11"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-22"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-23"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-28A"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "40",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "40",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "40",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "40",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-40"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310-10/tableOfContent"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11C"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11C"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-3"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-33"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-34"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "44",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-44"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "44",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-44"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//310-20/tableOfContent"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//320/tableOfContent"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-11"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-10"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-4"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-1"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479391/326-20-30-4A"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479391/326-20-30-5A"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479366/326-20-35-8A"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-5"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-11"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-17"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-21"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-3C"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-3D"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-6"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-6A"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479175/326-30-30-1B"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "13A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479148/326-30-35-13A"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479148/326-30-35-7A"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479130/326-30-45-1"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-3A"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-3C"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-3D"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-5"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-7"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//350-20/tableOfContent"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147477123/405-50-65-1"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-2"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480454/718-10-45-1"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479845/805-20-65-3"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479845/805-20-65-3"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479845/805-20-65-3"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4E"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EE",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4EE"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4K",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4K"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5C"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480627/815-20-45-3"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-5"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6A"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6B"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6B"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482477/820-10-65-13"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482477/820-10-65-13"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482736/825-10-45-1A"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482736/825-10-45-2"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-10"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "832",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483482/832-10-65-1"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "832",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483482/832-10-65-1"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483013/835-20-50-1"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481444/860-30-45-1"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-7"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-7"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481260/860-50-45-1"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481260/860-50-45-2"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481260/860-50-45-2"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481160/942-230-45-1"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-2"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1)(h))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(d)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(d)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-12"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column G)(Footnote 8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5A",
   "Subparagraph": "(SX 210.12-13A(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5A"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5A",
   "Subparagraph": "(SX 210.12-13A(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5A"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481852/948-310-45-1"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)(1)",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-21"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SAB Topic 6.L(5)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-4"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-10"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-11"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-12"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-12"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-15"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "79",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-79"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "80",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-80"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479081/326-30-55-8"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "181",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480401/815-10-55-181"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r753": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "SubTopic": "10",
   "Topic": "250",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3"
  },
  "r754": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4H",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H"
  },
  "r755": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SAB Topic 6.L.1)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-4"
  },
  "r756": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r757": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r758": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r759": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r760": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r761": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r762": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r763": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r764": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r765": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r766": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r767": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r768": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483504/205-10-50-1"
  },
  "r769": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r770": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r771": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4"
  },
  "r772": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5"
  },
  "r773": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6"
  },
  "r774": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r775": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r776": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(b)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r777": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r778": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-16"
  },
  "r779": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-21"
  },
  "r780": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25"
  },
  "r781": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r782": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r783": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r784": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23"
  },
  "r785": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24"
  },
  "r786": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5"
  },
  "r787": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-6"
  },
  "r788": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-33"
  },
  "r791": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-34"
  },
  "r792": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r793": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-42"
  },
  "r794": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A"
  },
  "r795": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "10B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481889/320-10-35-10B"
  },
  "r796": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1"
  },
  "r797": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-11"
  },
  "r798": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r799": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r800": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r801": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r802": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r803": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r804": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r805": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r806": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r807": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r808": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r809": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r810": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r811": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r812": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r813": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r814": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r815": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r816": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r817": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r818": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r819": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r820": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r821": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r822": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-4"
  },
  "r823": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3"
  },
  "r824": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r825": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5"
  },
  "r826": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1"
  },
  "r827": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r828": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r829": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r830": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r831": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r832": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r833": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9"
  },
  "r834": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r835": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r836": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r837": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5"
  },
  "r838": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r839": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r840": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r841": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r842": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r843": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r844": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r845": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r846": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r847": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r848": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r849": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r850": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r851": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r852": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r853": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r854": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r855": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r856": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r857": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r858": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r859": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r860": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r861": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r862": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r863": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r864": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r865": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r866": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r867": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "15",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15"
  },
  "r868": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r869": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r870": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r871": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r872": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r873": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B"
  },
  "r874": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r875": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480682/815-20-25-6A"
  },
  "r876": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r877": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r878": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r879": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28"
  },
  "r880": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r881": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7"
  },
  "r882": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7"
  },
  "r883": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(7)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r884": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-2"
  },
  "r885": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3"
  },
  "r886": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3"
  },
  "r887": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3"
  },
  "r888": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3"
  },
  "r889": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3"
  },
  "r890": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r891": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B"
  },
  "r892": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480109/944-80-50-1"
  },
  "r893": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r894": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r895": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r896": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3"
  },
  "r897": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r898": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r899": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3"
  },
  "r900": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r901": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "39",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480228/946-830-45-39"
  }
 }
}
