{
 "version": "2.2",
 "instance": {
  "cofs-20231231.htm": {
   "nsprefix": "cofs",
   "nsuri": "http://www.choiceone.bank/20231231",
   "dts": {
    "inline": {
     "local": [
      "cofs-20231231.htm"
     ]
    },
    "schema": {
     "local": [
      "cofs-20231231.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/net-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": 560,
   "keyCustom": 92,
   "axisStandard": 40,
   "axisCustom": 0,
   "memberStandard": 74,
   "memberCustom": 49,
   "hidden": {
    "total": 14,
    "http://fasb.org/us-gaap/2023": 11,
    "http://xbrl.sec.gov/dei/2023": 3
   },
   "contextCount": 555,
   "entityCount": 1,
   "segmentCount": 127,
   "elementCount": 1007,
   "unitCount": 8,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 2634,
    "http://xbrl.sec.gov/dei/2023": 38,
    "http://fasb.org/srt/2023": 3
   },
   "report": {
    "R1": {
     "role": "http://www.choiceone.bank/20231231/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_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
     "longName": "100010 - Statement - Consolidated Balance Sheets",
     "shortName": "Consolidated Balance Sheets",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals",
     "longName": "100050 - Statement - Consolidated Balance Sheets (Parentheticals)",
     "shortName": "Consolidated Balance Sheets (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income",
     "longName": "100060 - Statement - Consolidated Statements of Income",
     "shortName": "Consolidated Statements of Income",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income",
     "longName": "100070 - Statement - Consolidated Statements of Comprehensive Income",
     "shortName": "Consolidated Statements of Comprehensive Income",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
     "longName": "100080 - Statement - Consolidated Statements of Changes in Shareholders' Equity",
     "shortName": "Consolidated Statements of Changes in Shareholders' Equity",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "C_1ab319da-3ce4-45d8-865c-5f891c64927c",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_1ab319da-3ce4-45d8-865c-5f891c64927c",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-parentheticals",
     "longName": "100090 - Statement - Consolidated Statements of Changes in Shareholders' Equity (Parentheticals)",
     "shortName": "Consolidated Statements of Changes in Shareholders' Equity (Parentheticals)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R8": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
     "longName": "100100 - Statement - Consolidated Statements of Cash Flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:BankOwnedLifeInsuranceIncomeOperatingActivities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies",
     "longName": "100110 - Disclosure - Summary of Significant Accounting Policies",
     "shortName": "Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecurities",
     "longName": "100120 - Disclosure - Securities",
     "shortName": "Securities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLosses",
     "longName": "100130 - 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_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FinancingReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FinancingReceivablesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBanking",
     "longName": "100140 - Disclosure - Mortgage Banking",
     "shortName": "Mortgage Banking",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:MortgageBankingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:MortgageBankingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipment",
     "longName": "100150 - Disclosure - Premises and Equipment",
     "shortName": "Premises and Equipment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssets",
     "longName": "100160 - Disclosure - Goodwill and Acquired Intangible Assets",
     "shortName": "Goodwill and Acquired Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwned",
     "longName": "100170 - Disclosure - Other Real Estate Owned",
     "shortName": "Other Real Estate Owned",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RealEstateOwnedTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RealEstateOwnedTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivities1",
     "longName": "100180 - Disclosure - Derivatives and Hedging Activities",
     "shortName": "Derivatives and Hedging Activities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDeposits",
     "longName": "100190 - Disclosure - Deposits",
     "shortName": "Deposits",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowings",
     "longName": "100200 - Disclosure - Borrowings",
     "shortName": "Borrowings",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebentures1",
     "longName": "100210 - Disclosure - Subordinated Debentures",
     "shortName": "Subordinated Debentures",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:SubordinatedBorrowingsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:SubordinatedBorrowingsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxes1",
     "longName": "100220 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactions1",
     "longName": "100230 - Disclosure - Related Party Transactions",
     "shortName": "Related Party Transactions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlans",
     "longName": "100240 - Disclosure - Employee Benefit Plans",
     "shortName": "Employee Benefit Plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensation",
     "longName": "100250 - Disclosure - Stock Based Compensation",
     "shortName": "Stock Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShare",
     "longName": "100260 - Disclosure - Earnings Per Share",
     "shortName": "Earnings Per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompany1",
     "longName": "100270 - Disclosure - Condensed Financial Statements of Parent Company",
     "shortName": "Condensed Financial Statements of Parent Company",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstruments",
     "longName": "100280 - Disclosure - Financial Instruments",
     "shortName": "Financial Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurements",
     "longName": "100290 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivities1",
     "longName": "100300 - Disclosure - Off-Balance Sheet Activities",
     "shortName": "Off-Balance Sheet Activities",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1",
     "longName": "100310 - Disclosure - Regulatory Capital",
     "shortName": "Regulatory Capital",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies",
     "longName": "100320 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "30",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesTables",
     "longName": "100330 - Disclosure - Summary of Significant Accounting Policies (Tables)",
     "shortName": "Summary of Significant Accounting Policies (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables",
     "longName": "100340 - Disclosure - Securities (Tables)",
     "shortName": "Securities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables",
     "longName": "100350 - 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": "33",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingTables",
     "longName": "100360 - Disclosure - Mortgage Banking (Tables)",
     "shortName": "Mortgage Banking (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfActivityInSecondaryMarketLoansTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfActivityInSecondaryMarketLoansTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentTables",
     "longName": "100370 - Disclosure - Premises and Equipment (Tables)",
     "shortName": "Premises and Equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsTables",
     "longName": "100380 - Disclosure - Goodwill and Acquired Intangible Assets (Tables)",
     "shortName": "Goodwill and Acquired Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedTables",
     "longName": "100390 - Disclosure - Other Real Estate Owned (Tables)",
     "shortName": "Other Real Estate Owned (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:OtherRealEstateOwnedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RealEstateOwnedTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:OtherRealEstateOwnedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RealEstateOwnedTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesTables",
     "longName": "100400 - Disclosure - Derivatives and Hedging Activities (Tables)",
     "shortName": "Derivatives and Hedging Activities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsTables",
     "longName": "100410 - Disclosure - Deposits (Tables)",
     "shortName": "Deposits (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfDepositsOutstandingTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfDepositsOutstandingTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsTables",
     "longName": "100420 - Disclosure - Borrowings (Tables)",
     "shortName": "Borrowings (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesTables",
     "longName": "100430 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsTables",
     "longName": "100440 - Disclosure - Related Party Transactions (Tables)",
     "shortName": "Related Party Transactions (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationTables",
     "longName": "100450 - Disclosure - Stock Based Compensation (Tables)",
     "shortName": "Stock Based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareTables",
     "longName": "100460 - Disclosure - Earnings Per Share (Tables)",
     "shortName": "Earnings Per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyTables",
     "longName": "100470 - Disclosure - Condensed Financial Statements of Parent Company (Tables)",
     "shortName": "Condensed Financial Statements of Parent Company (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "srt:ScheduleOfCondensedBalanceSheetTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "srt:ScheduleOfCondensedBalanceSheetTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsTables",
     "longName": "100480 - Disclosure - Financial Instruments (Tables)",
     "shortName": "Financial Instruments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FairValueByBalanceSheetGroupingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancialInstrumentsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:FairValueByBalanceSheetGroupingTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:FinancialInstrumentsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsTables",
     "longName": "100490 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesTables",
     "longName": "100500 - Disclosure - Off-balance Sheet Activities (Tables)",
     "shortName": "Off-balance Sheet Activities (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:CreditRiskConcentrationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:CreditRiskConcentrationsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables",
     "longName": "100510 - Disclosure - Regulatory Capital (Tables)",
     "shortName": "Regulatory Capital (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
     "longName": "100520 - 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": "50",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:CashPassThroughReserveFederalHomeLoanBank",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:CashPassThroughReserveFederalHomeLoanBank",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
     "longName": "100530 - Disclosure - Summary of Significant Accounting Policies - Accumulated Other Comprehensive Income (Details)",
     "shortName": "Summary of Significant Accounting Policies - Accumulated Other Comprehensive Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:AociDebtSecuritiesHeldToMaturityAdjustmentAfterTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
     "longName": "100540 - Disclosure - Securities - Additional Information (Details)",
     "shortName": "Securities - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:HeldToMaturitySecuritiesFairValue",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_46f1c386-7ec6-447c-b814-ccb6d59472d6",
      "name": "us-gaap:OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails1",
     "longName": "100550 - 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": "53",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
     "longName": "100560 - Disclosure - Securities - Fair Value of Debt Security, Available-for-sale (Details)",
     "shortName": "Securities - Fair Value of Debt Security, Available-for-sale (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R55": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
     "longName": "100570 - Disclosure - Securities - Fair Value of Debt Security, Held-to-maturity (Details)",
     "shortName": "Securities - Fair Value of Debt Security, Held-to-maturity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:HeldToMaturitySecurities",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:HeldToMaturitySecurities",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSalesOfSecuritiesDetails",
     "longName": "100580 - Disclosure - Securities - Sales of Securities (Details)",
     "shortName": "Securities - Sales of Securities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRealizedGainLossTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRealizedGainLossTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
     "longName": "100590 - Disclosure - Securities - Contractual Maturities (Details)",
     "shortName": "Securities - Contractual Maturities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails",
     "longName": "100600 - Disclosure - Securities - Carrying Amount of Securities Pledged as Collateral (Details)",
     "shortName": "Securities - Carrying Amount of Securities Pledged as Collateral (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "C_83cf8f9b-7df2-4626-9041-82cefaad82a1",
      "name": "us-gaap:DebtSecurities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFinancialInstrumentsOwnedAndPledgedAsCollateralTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_83cf8f9b-7df2-4626-9041-82cefaad82a1",
      "name": "us-gaap:DebtSecurities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFinancialInstrumentsOwnedAndPledgedAsCollateralTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails",
     "longName": "100610 - 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": "59",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
     "longName": "100620 - 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": "60",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:DebtSecuritiesHeldToMaturityUnrealizedLossPositionFairValueTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:DebtSecuritiesHeldToMaturityUnrealizedLossPositionFairValueTableTextBlock",
       "div",
       "us-gaap:InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails",
     "longName": "100630 - 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": "61",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:EquitySecuritiesFvNiRealizedGainLoss",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R62": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails",
     "longName": "100640 - Disclosure - Loans and Allowance for Loan Losses - Additional Information (Details)",
     "shortName": "Loans and Allowance for Loan Losses - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:MortgageLoansInProcessOfForeclosureAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:MortgageLoansInProcessOfForeclosureAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
     "longName": "100650 - 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": "63",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:LoansAndLeasesReceivableGrossCarryingAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:LoansAndLeasesReceivableGrossCarryingAmount",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
     "longName": "100660 - Disclosure - Loans and Allowance for Credit Losses - Acquired Portfolio and The Acquisition Fair Value Adjustments (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Acquired Portfolio and The Acquisition Fair Value Adjustments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "C_5ca94e8c-ac36-4037-9d7f-07b6a56b8688",
      "name": "us-gaap:CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_5ca94e8c-ac36-4037-9d7f-07b6a56b8688",
      "name": "us-gaap:CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
     "longName": "100670 - 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": "65",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R66": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
     "longName": "100680 - 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": "66",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_5301d406-2db8-4416-83ec-c3c2e529e2be",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R67": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
     "longName": "100690 - 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": "67",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails",
     "longName": "100700 - Disclosure - Loans and Allowance for Credit Losses - Summary of Trouble Debt Restructurings (TDRs) (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Summary of Trouble Debt Restructurings (TDRs) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "C_46f1c386-7ec6-447c-b814-ccb6d59472d6",
      "name": "us-gaap:FinancingReceivableModificationsNumberOfContracts2",
      "unitRef": "U_Loan",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_46f1c386-7ec6-447c-b814-ccb6d59472d6",
      "name": "us-gaap:FinancingReceivableModificationsPreModificationRecordedInvestment2",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R69": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
     "longName": "100710 - Disclosure - Loans and Allowance for Credit Losses - Schedule of Loans for Impairment and Interest Recognized on Impaired Loans (Details)",
     "shortName": "Loans and Allowance for Credit Losses - Schedule of Loans for Impairment and Interest Recognized on Impaired Loans (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ImpairedFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ImpairedFinancingReceivablesTableTextBlock",
       "div",
       "us-gaap:FinancingReceivablesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R70": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
     "longName": "100720 - 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": "70",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R71": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
     "longName": "100730 - 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": "71",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:FinancingReceivableRecordedInvestmentNonaccrualStatus",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R72": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityInSecondaryMarketLoansDetails",
     "longName": "100740 - Disclosure - Mortgage Banking - Schedule of Activity in Secondary Market Loans (Details)",
     "shortName": "Mortgage Banking - Schedule of Activity in Secondary Market Loans (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:PaymentsForOriginationOfMortgageLoansHeldForSale",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:LoanServicingFeesNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfActivityInSecondaryMarketLoansTableTextBlock",
       "div",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R73": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails",
     "longName": "100750 - Disclosure - Mortgage Banking - Additional Information (Details)",
     "shortName": "Mortgage Banking - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:MortgageLoansServicedForOthers",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:MortgageLoansServicedForOthers",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityForLoanServicingRightsDetails",
     "longName": "100760 - Disclosure - Mortgage Banking - Schedule of Activity for Loan Servicing Rights (Details)",
     "shortName": "Mortgage Banking - Schedule of Activity for Loan Servicing Rights (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:ServicingAssetAtAmortizedValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfServicingAssetsAtAmortizedValueTextBlock",
       "div",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_20ba34ed-89b6-4343-94a2-7b17b111ee6f",
      "name": "us-gaap:ServicingAssetAtAmortizedValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfServicingAssetsAtAmortizedValueTextBlock",
       "div",
       "cofs:MortgageBankingTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R75": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
     "longName": "100770 - Disclosure - Premises and Equipment - Schedule of Premises and Equipment (Details)",
     "shortName": "Premises and Equipment - Schedule of Premises and Equipment (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentAdditionalInformationDetails",
     "longName": "100780 - Disclosure - Premises and Equipment - Additional Information (Details)",
     "shortName": "Premises and Equipment - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R77": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails",
     "longName": "100790 - Disclosure - Premises and Equipment - Rent Commitments (Details)",
     "shortName": "Premises and Equipment - Rent Commitments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R78": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
     "longName": "100800 - Disclosure - Goodwill and Acquired Intangible Assets - Additional Information (Details)",
     "shortName": "Goodwill and Acquired Intangible Assets - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_d779d0bb-948b-4992-bad6-ba2b348b96fa",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R79": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails",
     "longName": "100810 - Disclosure - Goodwill and Acquired Intangible Assets - Schedule of Goodwill (Details)",
     "shortName": "Goodwill and Acquired Intangible Assets - Schedule of Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_47277aaf-4945-4502-aea5-54a995e62ecb",
      "name": "us-gaap:GoodwillPurchaseAccountingAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R80": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
     "longName": "100820 - Disclosure - Goodwill and Acquired Intangible Assets - Schedule of Acquired Intangible Assets (Details)",
     "shortName": "Goodwill and Acquired Intangible Assets - Schedule of Acquired Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "C_70194078-772d-4f43-97ae-57904ed8f594",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_70194078-772d-4f43-97ae-57904ed8f594",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
     "longName": "100830 - Disclosure - Goodwill and Acquired Intangible Assets - Schedule of Estimated Amortization Expense (Details)",
     "shortName": "Goodwill and Acquired Intangible Assets - Schedule of Estimated Amortization Expense (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "C_70194078-772d-4f43-97ae-57904ed8f594",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_70194078-772d-4f43-97ae-57904ed8f594",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R82": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails",
     "longName": "100840 - Disclosure - Other Real Estate Owned - Activity within Other Real Estate Owned (Details)",
     "shortName": "Other Real Estate Owned - Activity within Other Real Estate Owned (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:OtherRealEstate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_20ba34ed-89b6-4343-94a2-7b17b111ee6f",
      "name": "us-gaap:OtherRealEstate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:OtherRealEstateOwnedTableTextBlock",
       "div",
       "us-gaap:RealEstateOwnedTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R83": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedAdditionalInformationDetails",
     "longName": "100850 - Disclosure - Other Real Estate Owned - Additional Information (Details)",
     "shortName": "Other Real Estate Owned - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:MortgageLoansOnRealEstate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RealEstateOwnedTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:MortgageLoansOnRealEstate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RealEstateOwnedTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R84": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
     "longName": "100860 - Disclosure - Derivatives and Hedging Activities - Additional Information (Details)",
     "shortName": "Derivatives and Hedging Activities - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "C_4ef97b83-96bb-43f1-99f8-40b860fb847e",
      "name": "us-gaap:DerivativeLossOnDerivative",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4ef97b83-96bb-43f1-99f8-40b860fb847e",
      "name": "us-gaap:DerivativeLossOnDerivative",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R85": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
     "longName": "100870 - Disclosure - Derivatives and Hedging Activities - Schedule of Derivatives Instruments in Balance Sheet Location (Details)",
     "shortName": "Derivatives and Hedging Activities - Schedule of Derivatives Instruments in Balance Sheet Location (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "C_bb56dbd3-ac3a-48e9-bda1-86b05a607ce5",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R86": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
     "longName": "100880 - Disclosure - Derivatives and Hedging Activities - Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships (Details) (Details)",
     "shortName": "Derivatives and Hedging Activities - Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships (Details) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "C_5090d6d3-7b62-46b6-bbec-fe2ebee1fc1a",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_5090d6d3-7b62-46b6-bbec-fe2ebee1fc1a",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R87": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
     "longName": "100890 - Disclosure - Derivatives and Hedging Activities - Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost (Details) (Details)",
     "shortName": "Derivatives and Hedging Activities - Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost (Details) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "C_de5ec41a-c566-4fcc-ac07-ff3d7a8477c3",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_de5ec41a-c566-4fcc-ac07-ff3d7a8477c3",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
       "div",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R88": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsAdditionalInformationDetails",
     "longName": "100900 - Disclosure - Deposits - Additional Information (Details)",
     "shortName": "Deposits - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:TimeDeposits250000OrMore",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:TimeDeposits250000OrMore",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R89": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails",
     "longName": "100910 - Disclosure - Deposits - Deposit Balances (Details)",
     "shortName": "Deposits - Deposit Balances (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "89",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:NoninterestBearingDomesticDepositDemand",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfDepositsOutstandingTableTextBlock",
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:NoninterestBearingDomesticDepositDemand",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfDepositsOutstandingTableTextBlock",
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R90": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails",
     "longName": "100920 - Disclosure - Deposits - Maturities of Certificate of Deposit (Details)",
     "shortName": "Deposits - Maturities of Certificate of Deposit (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "90",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:TimeDepositMaturitiesYearOne",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TimeDepositMaturitiesTableTextBlock",
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:TimeDepositMaturitiesYearOne",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:TimeDepositMaturitiesTableTextBlock",
       "div",
       "us-gaap:DepositLiabilitiesDisclosuresTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R91": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
     "longName": "100930 - Disclosure - Borrowings - Additional Information (Details)",
     "shortName": "Borrowings - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "91",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:FederalReserveBankAdvancesGeneralDebtObligationsAmountOfAvailableUnusedFunds",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:FederalReserveBankAdvancesGeneralDebtObligationsAmountOfAvailableUnusedFunds",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R92": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
     "longName": "100940 - Disclosure - Borrowings - Schedule of Bank Term Funding Program Advances (Details)",
     "shortName": "Borrowings - Schedule of Bank Term Funding Program Advances (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "92",
     "firstAnchor": {
      "contextRef": "C_70f2b310-2cd0-4452-b35d-754404dc499f",
      "name": "cofs:AdvanceFromBankTermFundingProgram",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_70f2b310-2cd0-4452-b35d-754404dc499f",
      "name": "cofs:AdvanceFromBankTermFundingProgram",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R93": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails",
     "longName": "100950 - Disclosure - Borrowings - Schedule of Bank Term Funding Program Advances (Parenthetical) (Details)",
     "shortName": "Borrowings - Schedule of Bank Term Funding Program Advances (Parenthetical) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "93",
     "firstAnchor": {
      "contextRef": "C_70f2b310-2cd0-4452-b35d-754404dc499f",
      "name": "us-gaap:DebtInstrumentInterestRateStatedPercentage",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_70f2b310-2cd0-4452-b35d-754404dc499f",
      "name": "us-gaap:DebtInstrumentInterestRateStatedPercentage",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R94": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
     "longName": "100960 - Disclosure - Borrowings - Schedule of Federal Home Loan Bank Advances (Details)",
     "shortName": "Borrowings - Schedule of Federal Home Loan Bank Advances (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "94",
     "firstAnchor": {
      "contextRef": "C_aac80e3c-9ef4-450f-b17b-52b437e53b4c",
      "name": "us-gaap:AdvancesFromFederalHomeLoanBanks",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_aac80e3c-9ef4-450f-b17b-52b437e53b4c",
      "name": "us-gaap:AdvancesFromFederalHomeLoanBanks",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R95": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails",
     "longName": "100970 - Disclosure - Borrowings - Schedule of Federal Home Loan Bank Advances (Parentheticals) (Details)",
     "shortName": "Borrowings - Schedule of Federal Home Loan Bank Advances (Parentheticals) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "95",
     "firstAnchor": {
      "contextRef": "C_fffeac50-d119-4325-b51b-f543377851c0",
      "name": "us-gaap:FederalHomeLoanBankAdvancesBranchOfFHLBBankInterestRate",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fffeac50-d119-4325-b51b-f543377851c0",
      "name": "us-gaap:FederalHomeLoanBankAdvancesBranchOfFHLBBankInterestRate",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock",
       "div",
       "us-gaap:FederalHomeLoanBankAdvancesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R96": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails",
     "longName": "100980 - Disclosure - Subordinated Debentures - Additional Information (Details)",
     "shortName": "Subordinated Debentures - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "96",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:TrustPreferredSecuritiesAfterMergerFairValueAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SubordinatedBorrowingsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:TrustPreferredSecuritiesAfterMergerFairValueAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:SubordinatedBorrowingsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R97": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails",
     "longName": "100990 - Disclosure - Income Taxes - Reconciliation of Effective Income Tax Rate (Details)",
     "shortName": "Income Taxes - Reconciliation of Effective Income Tax Rate (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "97",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:CurrentIncomeTaxExpenseBenefit",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R98": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateParentheticalsDetails",
     "longName": "101000 - Disclosure - Income Taxes - Reconciliation of Effective Income Tax Rate (Parentheticals) (Details)",
     "shortName": "Income Taxes - Reconciliation of Effective Income Tax Rate (Parentheticals) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "98",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R99": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails",
     "longName": "101010 - Disclosure - Income Taxes - Deferred Tax Assets and Liabilities (Details)",
     "shortName": "Income Taxes - Deferred Tax Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "99",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:DeferredTaxAssetsPurchaseAccountingAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "cofs:DeferredTaxAssetsPurchaseAccountingAdjustments",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "div",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R100": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
     "longName": "101020 - Disclosure - Income Taxes - Additional Information (Details)",
     "shortName": "Income Taxes - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "100",
     "firstAnchor": {
      "contextRef": "C_55ee3951-eacf-440e-9d42-e5aa232d6cd2",
      "name": "cofs:OperatingLossCarryforwardsExpirationYear",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_55ee3951-eacf-440e-9d42-e5aa232d6cd2",
      "name": "cofs:OperatingLossCarryforwardsExpirationYear",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R101": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsLoansToRelatedPartiesDetails",
     "longName": "101030 - Disclosure - Related Party Transactions - Loans to Related Parties (Details)",
     "shortName": "Related Party Transactions - Loans to Related Parties (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "101",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:LoansAndLeasesReceivableRelatedParties",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock",
       "div",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_603bb0c3-8676-48e3-8366-4678a6b967e4",
      "name": "us-gaap:LoansAndLeasesReceivableRelatedParties",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRelatedPartyTransactionsTableTextBlock",
       "div",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R102": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetails",
     "longName": "101040 - Disclosure - Related Party Transactions - Additional Information (Details)",
     "shortName": "Related Party Transactions - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "102",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:RelatedPartyDepositLiabilities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:RelatedPartyDepositLiabilities",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R103": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails",
     "longName": "101050 - Disclosure - Employee Benefit Plans - Additional Information (Details)",
     "shortName": "Employee Benefit Plans - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "103",
     "firstAnchor": {
      "contextRef": "C_a0b4c4a7-9b63-4cb9-8e5f-02349e239c81",
      "name": "us-gaap:DefinedContributionPlanCostRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_a0b4c4a7-9b63-4cb9-8e5f-02349e239c81",
      "name": "us-gaap:DefinedContributionPlanCostRecognized",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R104": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
     "longName": "101060 - Disclosure - Stock Based Compensation - Additional Information (Details)",
     "shortName": "Stock Based Compensation - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "104",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
      "unitRef": "U_UnitedStatesOfAmericaDollarsShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R105": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
     "longName": "101070 - Disclosure - Stock Based Compensation - Stock Option Activity (Details)",
     "shortName": "Stock Based Compensation - Stock Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "105",
     "firstAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fab61160-d5af-4b11-8d32-0415cf4a1e48",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R106": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails",
     "longName": "101080 - Disclosure - Stock Based Compensation - Stock Options Outstanding By Exercise Price Range (Details)",
     "shortName": "Stock Based Compensation - Stock Options Outstanding By Exercise Price Range (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "106",
     "firstAnchor": {
      "contextRef": "C_28af0896-0287-4ece-b679-0d6698d2772d",
      "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
      "unitRef": "U_UnitedStatesOfAmericaDollarsShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_28af0896-0287-4ece-b679-0d6698d2772d",
      "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
      "unitRef": "U_UnitedStatesOfAmericaDollarsShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R107": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails",
     "longName": "101090 - Disclosure - Stock Based Compensation - Summary of Activity for Stock Units Outstanding (Details)",
     "shortName": "Stock Based Compensation - Summary of Activity for Stock Units Outstanding (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "107",
     "firstAnchor": {
      "contextRef": "C_c1abb8c5-f815-4e7b-8f58-b288eb7ac138",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_085fe0bd-acde-4699-888a-e1cdc2af3b8f",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R108": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
     "longName": "101100 - 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": "108",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R109": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
     "longName": "101110 - Disclosure - Earnings Per Share - Additional Information (Details)",
     "shortName": "Earnings Per Share - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "109",
     "firstAnchor": {
      "contextRef": "C_f6432f4f-85ed-4db4-9f8a-c385d5f863c5",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f6432f4f-85ed-4db4-9f8a-c385d5f863c5",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:EarningsPerShareTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R110": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
     "longName": "101120 - Disclosure - Condensed Financial Statements of Parent Company - Condensed Balance Sheets (Details)",
     "shortName": "Condensed Financial Statements of Parent Company - Condensed Balance Sheets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "110",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c0a0d49a-b7df-436f-8cd7-984dd30266a4",
      "name": "us-gaap:Cash",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "srt:ScheduleOfCondensedBalanceSheetTableTextBlock",
       "div",
       "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R111": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
     "longName": "101130 - Disclosure - Condensed Financial Statements of Parent Company - Condensed Statements of Income (Details)",
     "shortName": "Condensed Financial Statements of Parent Company - Condensed Statements of Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "111",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "us-gaap:InterestAndDividendIncomeOperating",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_a38058e0-43dd-4c2c-be27-187b1c885980",
      "name": "cofs:InterestAndDividendIncomeFromSubsidiaries",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "srt:ScheduleOfCondensedIncomeStatementTableTextBlock",
       "div",
       "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R112": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
     "longName": "101140 - Disclosure - Condensed Financial Statements of Parent Company - Condensed Statements of Cash Flows (Details)",
     "shortName": "Condensed Financial Statements of Parent Company - Condensed Statements of Cash Flows (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "parenthetical",
     "menuCat": "Details",
     "order": "112",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_a38058e0-43dd-4c2c-be27-187b1c885980",
      "name": "us-gaap:IncomeLossFromSubsidiariesNetOfTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "srt:ScheduleOfCondensedCashFlowStatementTableTextBlock",
       "div",
       "us-gaap:CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R113": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
     "longName": "101150 - 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": "113",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_89f842ec-b0e8-4b09-abf3-57a82e01fb7a",
      "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:FairValueByBalanceSheetGroupingTextBlock",
       "div",
       "us-gaap:FinancialInstrumentsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "unique": true
     }
    },
    "R114": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
     "longName": "101160 - 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": "114",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_3fb0aff7-6e2a-4656-b43a-69991d1d53e3",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R115": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
     "longName": "101170 - 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": "115",
     "firstAnchor": {
      "contextRef": "C_c5ce3dce-5108-4301-8978-2b231dd389ea",
      "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-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_da70cbd8-b02f-46e4-8705-22072475bc16",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R116": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
     "longName": "101180 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "116",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "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-20231231.htm",
      "unique": true
     }
    },
    "R117": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
     "longName": "101190 - 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": "117",
     "firstAnchor": {
      "contextRef": "C_b7a3fdf1-bb0b-454b-9547-b578d72dccdc",
      "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-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_b7a3fdf1-bb0b-454b-9547-b578d72dccdc",
      "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-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R118": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails",
     "longName": "101200 - Disclosure - Off-balance Sheet Activities - Additional Information (Details)",
     "shortName": "Off-balance Sheet Activities - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "118",
     "firstAnchor": {
      "contextRef": "C_f7912b89-4e49-4b4e-a02c-fb2028579377",
      "name": "cofs:InterestRateCommitmentsToExtendCredit",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f7912b89-4e49-4b4e-a02c-fb2028579377",
      "name": "cofs:InterestRateCommitmentsToExtendCredit",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "4",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R119": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesScheduleOfFinancialInstrumentsWithOffbalanceSheetRiskDetails",
     "longName": "101210 - Disclosure - Off-balance Sheet Activities - Schedule of Financial Instruments with Off-Balance Sheet Risk (Details)",
     "shortName": "Off-balance Sheet Activities - Schedule of Financial Instruments with Off-Balance Sheet Risk (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "119",
     "firstAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:UnusedLinesOfCreditAndLettersOfCreditFixedRate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:CreditRiskConcentrationsTableTextBlock",
       "div",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_fce26c7e-9265-47dc-ae7f-22330f45923e",
      "name": "cofs:UnusedLinesOfCreditAndLettersOfCreditFixedRate",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "cofs:CreditRiskConcentrationsTableTextBlock",
       "div",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R120": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails",
     "longName": "101220 - Disclosure - Regulatory Capital - Additional Information (Details)",
     "shortName": "Regulatory Capital - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "120",
     "firstAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:StatutoryAccountingPracticesStatutoryAmountAvailableForDividendPaymentsWithoutRegulatoryApproval",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_cca71414-051b-4659-aa7b-756384b808e6",
      "name": "us-gaap:StatutoryAccountingPracticesStatutoryAmountAvailableForDividendPaymentsWithoutRegulatoryApproval",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R121": {
     "role": "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails",
     "longName": "101230 - Disclosure - Regulatory Capital - Regulatory Capital (Details)",
     "shortName": "Regulatory Capital - Regulatory Capital (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "121",
     "firstAnchor": {
      "contextRef": "C_c0a0d49a-b7df-436f-8cd7-984dd30266a4",
      "name": "us-gaap:Capital",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_c0a0d49a-b7df-436f-8cd7-984dd30266a4",
      "name": "us-gaap:Capital",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "us-gaap:RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cofs-20231231.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "cofs_AAAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AAAMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "AAA.",
        "label": "A A A [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AAMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AAMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A A [Member]",
        "label": "A A [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AAOrBetterMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AAOrBetterMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to AA or better.",
        "label": "AA or Better [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ARatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ARatedMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "A Rated [Member]",
        "label": "A Rated [Member]",
        "documentation": "A rated."
       }
      }
     },
     "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/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update 2016-13 [Member]",
        "documentation": "Accounting Standards Update 2016-13 Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments."
       }
      }
     },
     "auth_ref": [
      "r469"
     ]
    },
    "us-gaap_AccountingStandardsUpdateExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingStandardsUpdateExtensibleList",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Extensible Enumeration]",
        "documentation": "Indicates amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r361",
      "r362",
      "r363",
      "r428",
      "r429",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r539",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r677",
      "r678",
      "r679",
      "r693",
      "r694",
      "r695",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r731",
      "r732",
      "r737",
      "r738",
      "r739",
      "r740",
      "r749",
      "r750",
      "r753",
      "r754",
      "r755",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r864",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r870",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875",
      "r1094"
     ]
    },
    "us-gaap_AccountsNotesAndLoansReceivableLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsNotesAndLoansReceivableLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts, Notes, Loans and Financing Receivable [Line Items]",
        "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/20231231",
     "localname": "AccruedInterestPayableFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued interest payable",
        "documentation": "Fair value portion of accrued interest payable.",
        "label": "Accrued interest payable"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AccruedInterestReceivableFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AccruedInterestReceivableFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued interest receivable",
        "documentation": "Represents fair value of accrued interest receivable.",
        "label": "Accrued interest receivable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Ending Balance",
        "periodStartLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Beginning Balance",
        "totalLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Total",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "negatedLabel": "Accumulated depreciation",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r306",
      "r851"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails": {
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unrealized gain (loss) on available-for-sale securities",
        "verboseLabel": "Net unrealized gain",
        "terseLabel": "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": [
      "r1070"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive income, net",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Accumulated other comprehensive income (loss)",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r46",
      "r178",
      "r313",
      "r847",
      "r871",
      "r875"
     ]
    },
    "cofs_AccumulatedOtherComprehensiveIncomeLossTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AccumulatedOtherComprehensiveIncomeLossTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails": {
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of accumulated other comprehensive income (loss) tax effect.",
        "label": "cofs_AccumulatedOtherComprehensiveIncomeLossTax",
        "negatedTerseLabel": "Tax effect"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income/(Loss), Net [Member]",
        "label": "AOCI Attributable to Parent [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": [
      "r4",
      "r22",
      "r46",
      "r698",
      "r701",
      "r765",
      "r866",
      "r867",
      "r1072",
      "r1073",
      "r1074",
      "r1090",
      "r1091",
      "r1092"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired finite-lived intangible assets, weighted average useful life (month)",
        "label": "Acquired finite-lived intangible assets, weighted average useful life (Month)",
        "verboseLabel": "Amortization of Intangible Assets",
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r196"
     ]
    },
    "cofs_AcquiredImpairedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AcquiredImpairedMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Impaired [Member]",
        "documentation": "Represents information related to acquired impaired.",
        "label": "Acquired Impaired [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AcquiredNonimpairedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AcquiredNonimpairedMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Non-Impaired [Member]",
        "documentation": "Represents information related to acquired non-impaired.",
        "label": "Acquired Non-Impaired [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AdditionalAllowanceForCreditLossOnUnfundedCommitments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AdditionalAllowanceForCreditLossOnUnfundedCommitments",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional allowance for credit loss on unfunded commitments",
        "label": "Additional Allowance for Credit Loss on Unfunded Commitments",
        "documentation": "Additional allowance for credit loss on unfunded commitments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentForAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentForAmortization",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Merger fair value adjustments",
        "label": "Amortization",
        "terseLabel": "Amortization",
        "verboseLabel": "Amortization",
        "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": [
      "r10",
      "r93"
     ]
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Axis]",
        "documentation": "Information by amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r361",
      "r362",
      "r363",
      "r364",
      "r373",
      "r428",
      "r429",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r539",
      "r643",
      "r644",
      "r645",
      "r664",
      "r665",
      "r666",
      "r667",
      "r677",
      "r678",
      "r679",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r731",
      "r732",
      "r737",
      "r738",
      "r739",
      "r740",
      "r749",
      "r750",
      "r753",
      "r754",
      "r755",
      "r756",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r811",
      "r812",
      "r813",
      "r864",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r870",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875"
     ]
    },
    "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of employee stock purchases",
        "label": "APIC, Share-Based Payment Arrangement, ESPP, Increase for Cost Recognition",
        "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/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition, Total",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "verboseLabel": "Stock-based compensation expense",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r107",
      "r605"
     ]
    },
    "cofs_AdvanceFromBankTermFundingProgram": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AdvanceFromBankTermFundingProgram",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total advances outstanding at year-end",
        "label": "Advance From Bank Term Funding Program",
        "documentation": "Advance from Bank Term Funding Program"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvancesFromFederalHomeLoanBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdvancesFromFederalHomeLoanBanks",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total advances outstanding at year-end",
        "totalLabel": "Advance from Federal Home Loan Bank, Total",
        "label": "Advance from Federal Home Loan Bank",
        "documentation": "Amount of borrowings as of the balance sheet date from the Federal Home Loan Bank, which are primarily used to cover shortages in the required reserve balance and liquidity shortages."
       }
      }
     },
     "auth_ref": [
      "r244"
     ]
    },
    "cofs_AgriculturalAndResidentialRealEstateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AgriculturalAndResidentialRealEstateMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to agricultural and residential real estate loans.",
        "label": "Agricultural and Residential Real Estate [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_AgriculturalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AgriculturalMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Agricultural [Member]",
        "documentation": "Represents information related to agriculture.",
        "label": "Agricultural [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share based compensation, expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r638",
      "r650"
     ]
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Credit Losses and Balances in Loan Portfolio",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r68",
      "r1145"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment",
        "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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of intangible assets",
        "verboseLabel": "Intangible amortization (Note 6)",
        "label": "Amortization of Intangible Assets",
        "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": [
      "r10",
      "r90",
      "r93"
     ]
    },
    "cofs_AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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]",
        "documentation": "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/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)",
        "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": [
      "r391"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Earnings Per Share [Line Items]",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [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_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r62"
     ]
    },
    "cofs_AociDebtSecuritiesHeldToMaturityAdjustmentAfterTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "AociDebtSecuritiesHeldToMaturityAdjustmentAfterTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails": {
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax, of accumulated unrealized gain (loss) on investment in debt security classified as held-to-maturity.",
        "label": "cofs_AociDebtSecuritiesHeldToMaturityAdjustmentAfterTax",
        "terseLabel": "Unrealized gain (loss) on held to maturity securities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AociLossCashFlowHedgeCumulativeGainLossAfterTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails": {
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "AOCI, Cash Flow Hedge, Cumulative Gain (Loss), after Tax",
        "terseLabel": "Unrealized gain (loss) on derivative instruments",
        "documentation": "Amount, after tax, of accumulated gain (loss) on derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness."
       }
      }
     },
     "auth_ref": [
      "r320"
     ]
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetBackedSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset-backed Securities [Member]",
        "label": "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": [
      "r1010",
      "r1113",
      "r1123",
      "r1131"
     ]
    },
    "us-gaap_AssetPledgedAsCollateralMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetPledgedAsCollateralMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Pledged as Collateral [Member]",
        "documentation": "Asset pledged as collateral."
       }
      }
     },
     "auth_ref": [
      "r680",
      "r899",
      "r1018",
      "r1287"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets",
        "totalLabel": "Total 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": [
      "r217",
      "r310",
      "r349",
      "r396",
      "r406",
      "r408",
      "r468",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r680",
      "r682",
      "r736",
      "r844",
      "r919",
      "r1020",
      "r1032",
      "r1162",
      "r1163",
      "r1278"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "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/20231231/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": [
      "r354",
      "r789"
     ]
    },
    "us-gaap_AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsSoldUnderAgreementsToRepurchaseMaturityPeriodsAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r354",
      "r789"
     ]
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorLocation",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorName",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Gross unrealized gains",
        "terseLabel": "Gross unrealized gains, available for sale",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax",
        "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": [
      "r439"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Gross unrealized losses, available for sale",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "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": [
      "r440"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Amortized cost, available for sale",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "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": [
      "r436",
      "r509",
      "r842"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Maturity, Allocated and Single Maturity Date, after Year 5 Through 10",
        "terseLabel": "Due after five years through ten years, amortized cost",
        "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), with single maturity date and allocated without single maturity date, maturing in sixth through tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1116"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 5 Through 10",
        "terseLabel": "Due after five years through ten years, fair value",
        "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), with single maturity date and allocated without single maturity date, maturing in sixth through tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r445",
      "r827"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Maturity, Allocated and Single Maturity Date, after Year One Through Five",
        "terseLabel": "Due after one year through five years, amortized cost",
        "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), with single maturity date and allocated without single maturity date, maturing in second through fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1115"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, after Year One Through Five",
        "terseLabel": "Due after one year through five years, fair value",
        "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), with single maturity date and allocated without single maturity date, maturing in second through fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r444",
      "r826"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Maturity, Allocated and Single Maturity Date, after Year 10",
        "terseLabel": "Due after ten years, amortized cost",
        "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), with single maturity date and allocated without single maturity date, maturing after tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1117"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 10",
        "terseLabel": "Due after ten years, fair value",
        "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), with single maturity date and allocated without single maturity date, maturing after tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r446",
      "r828"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total debt securities, fair value",
        "label": "Debt Securities, Available-for-Sale, Maturity, Allocated and Single Maturity Date, Fair Value",
        "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), with single maturity date and allocated without single maturity date."
       }
      }
     },
     "auth_ref": [
      "r1112",
      "r1113",
      "r1296"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total debt securities, amortized cost",
        "label": "Debt Securities, Available-for-Sale, Maturity, Allocated and Single Maturity Date, Amortized Cost",
        "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), with single maturity date and allocated without single maturity date."
       }
      }
     },
     "auth_ref": [
      "r1112",
      "r1113",
      "r1291"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Maturity, Allocated and Single Maturity Date, Year One",
        "terseLabel": "Due within one year, amortized cost",
        "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), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r1114"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesSingleMaturityDate",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "terseLabel": "Due within one year, fair value",
        "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), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r443",
      "r825"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Maturity, without Single Maturity Date, Amortized Cost",
        "terseLabel": "Mortgage-backed securities, amortized cost",
        "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), without single maturity date and not allocated over maturity grouping."
       }
      }
     },
     "auth_ref": [
      "r1112",
      "r1113"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Maturity, without Single Maturity Date, Fair Value",
        "terseLabel": "Mortgage-backed securities, fair value",
        "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), without single maturity date and not allocated over maturity grouping."
       }
      }
     },
     "auth_ref": [
      "r442",
      "r824",
      "r1112"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 10.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Securities available for sale, at fair value (Note 2)",
        "terseLabel": "Securities available for sale, at fair value (Note 2)",
        "verboseLabel": "Securities available for sale",
        "label": "Debt Securities, 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": [
      "r437",
      "r509",
      "r816",
      "r1104"
     ]
    },
    "us-gaap_AvailableforsaleSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableforsaleSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r260"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r609",
      "r610",
      "r611",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637"
     ]
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails",
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Location [Domain]",
        "documentation": "Location in the balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r126"
     ]
    },
    "us-gaap_BankOwnedLifeInsuranceIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BankOwnedLifeInsuranceIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings on life insurance policies",
        "label": "Bank Owned Life Insurance Income",
        "documentation": "Earnings on or other increases in the value of the cash surrender value of bank owned life insurance policies."
       }
      }
     },
     "auth_ref": [
      "r233"
     ]
    },
    "cofs_BankOwnedLifeInsuranceIncomeOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankOwnedLifeInsuranceIncomeOperatingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of bank owned life insurance income classified as operating activities.",
        "label": "cofs_BankOwnedLifeInsuranceIncomeOperatingActivities",
        "negatedLabel": "Earnings on bank-owned life insurance"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramAdvancesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramAdvancesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Bank Term Funding Program Advances [Member]",
        "documentation": "Bank Term Funding Program Advances."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramGeneralDebtObligationsDisclosuresAmountOfAvailableUnusedFunds": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramGeneralDebtObligationsDisclosuresAmountOfAvailableUnusedFunds",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bank term funding program, eligible borrowing capacity",
        "label": "Bank Term Funding Program General Debt Obligations Disclosures Amount Of Available Unused Funds",
        "documentation": "Bank Term Funding Program general debt obligations disclosures amount of available unused funds."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramGeneralDebtObligationsDisclosuresCollateralPledged": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramGeneralDebtObligationsDisclosuresCollateralPledged",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Bank term funding program general debt obligations, disclosures, collateral pledged",
        "label": "Bank Term Funding Program General Debt Obligations, Disclosures, Collateral Pledged",
        "documentation": "Bank Term Funding Program General Debt Obligations, Disclosures, Collateral Pledged."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramMaturityOfDecember2024Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramMaturityOfDecember2024Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Bank Term Funding Program Maturity Of December 2024 [Member]",
        "documentation": "Bank Term Funding Program Maturity of December 2024."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramMaturityOfDecember2025Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramMaturityOfDecember2025Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Bank Term Funding Program Maturity Of December 2025 [Member]",
        "documentation": "Bank Term Funding Program Maturity of December 2025."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramMaturityOfMay2024Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramMaturityOfMay2024Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Bank Term Funding Program Maturity Of May 2024 [Member]",
        "documentation": "Bank Term Funding Program Maturity of May 2024"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankTermFundingProgramMaximumborrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankTermFundingProgramMaximumborrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Eligible borrowing capacity",
        "label": "Bank Term Funding Program MaximumBorrowing Capacity",
        "documentation": "Bank Term Funding Program MaximumBorrowing Capacity"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BankedOwnedLifeInsurancePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BankedOwnedLifeInsurancePolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bank Owned Life Insurance",
        "documentation": "Disclosure of accounting policy for bank owned life insurance.",
        "label": "Banked Owned Life Insurance, Policy [Policy Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BankingRegulationCommonEquityTierOneRiskBasedCapitalRatioCapitalAdequacyMinimum": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BankingRegulationCommonEquityTierOneRiskBasedCapitalRatioCapitalAdequacyMinimum",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets), Minimum Required for Capital Adequacy Purposes, Ratio",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital Ratio, Capital Adequacy, Minimum",
        "documentation": "Ratio of minimum Common Equity Tier 1 risk-based capital to risk-weighted assets required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_BankingRegulationCommonEquityTierOneRiskBasedCapitalRatioWellCapitalizedMinimum": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BankingRegulationCommonEquityTierOneRiskBasedCapitalRatioWellCapitalizedMinimum",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations, Ratio",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital Ratio, Well Capitalized, Minimum",
        "documentation": "Ratio of minimum Common Equity Tier 1 risk-based capital to risk-weighted assets categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "cofs_Borrowings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "Borrowings",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information related to borrowings.",
        "label": "cofs_Borrowings",
        "verboseLabel": "Borrowings (Note 10)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_BrokeredDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BrokeredDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Brokered deposits (Note 9)",
        "label": "Brokered Deposits",
        "documentation": "Brokered deposits."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BuildingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BuildingMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Building [Member]",
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree [Domain]",
        "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": [
      "r676",
      "r1013",
      "r1014"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Axis]",
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r112",
      "r676",
      "r1013",
      "r1014"
     ]
    },
    "us-gaap_BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionProFormaInformationNonrecurringAdjustmentsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Portfolio and The Acquisition Fair Value Adjustments",
        "label": "Business Acquisition, Pro Forma Information, Nonrecurring Adjustments [Table Text Block]",
        "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": [
      "r29"
     ]
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recent Mergers",
        "label": "Business Combinations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy."
       }
      }
     },
     "auth_ref": [
      "r110"
     ]
    },
    "cofs_BusinessLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "BusinessLoanMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Loan [Member]",
        "label": "Business Loan [Member]",
        "documentation": "Business Loan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Capital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Capital",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Capital",
        "label": "Banking Regulation, Total Capital, Actual",
        "documentation": "Amount of total capital as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CapitalRequiredForCapitalAdequacy": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalRequiredForCapitalAdequacy",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum Required for Capital Adequacy Purposes",
        "label": "Banking Regulation, Total Risk-Based Capital, Capital Adequacy, Minimum",
        "documentation": "Amount of minimum total risk-based capital required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_CapitalRequiredForCapitalAdequacyToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalRequiredForCapitalAdequacyToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum Required for Capital Adequacy Purposes, Ratio",
        "label": "Banking Regulation, Total Risk-Based Capital Ratio, Capital Adequacy, Minimum",
        "documentation": "Ratio of minimum total risk-based capital to risk-weighted assets required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_CapitalRequiredToBeWellCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalRequiredToBeWellCapitalized",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations",
        "label": "Banking Regulation, Total Risk-Based Capital, Well Capitalized, Minimum",
        "documentation": "Amount of minimum total risk-based capital categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CapitalRequiredToBeWellCapitalizedToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalRequiredToBeWellCapitalizedToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations, Ratio",
        "label": "Banking Regulation, Total Risk-Based Capital Ratio, Well Capitalized, Minimum",
        "documentation": "Ratio of minimum total risk-based capital to risk-weighted assets categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CapitalToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Capital (to risk-weighted assets) ratio",
        "label": "Banking Regulation, Total Risk-Based Capital Ratio, Actual",
        "documentation": "Ratio of total risk-based capital to risk-weighted assets as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CarryingReportedAmountFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CarryingReportedAmountFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r142",
      "r143"
     ]
    },
    "us-gaap_Cash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Cash",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash",
        "terseLabel": "Cash",
        "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. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r845",
      "r886",
      "r914",
      "r1020",
      "r1032",
      "r1067"
     ]
    },
    "us-gaap_CashAcquiredInExcessOfPaymentsToAcquireBusiness": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAcquiredInExcessOfPaymentsToAcquireBusiness",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Acquired in Excess of Payments to Acquire Business",
        "terseLabel": "Cash acquired from mergers with Community Shores Bank Corporation",
        "documentation": "The cash inflow associated with the acquisition of a business when the cash held by the acquired business exceeds the cash payments to acquire the business."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "totalLabel": "Cash and cash equivalents",
        "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": [
      "r55",
      "r304",
      "r982"
     ]
    },
    "us-gaap_CashAndCashEquivalentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, Fair Value Disclosure",
        "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_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value."
       }
      }
     },
     "auth_ref": [
      "r57"
     ]
    },
    "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash Restrictions",
        "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r214"
     ]
    },
    "us-gaap_CashAndDueFromBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndDueFromBanks",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and due from banks",
        "totalLabel": "Cash and Due from Banks, Total",
        "label": "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": [
      "r215"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Ending cash and cash equivalents",
        "totalLabel": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations",
        "periodStartLabel": "Beginning cash and cash equivalents",
        "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": [
      "r55",
      "r186",
      "r347"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Net change in cash and cash equivalents",
        "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": [
      "r3",
      "r186"
     ]
    },
    "cofs_CashDividendMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CashDividendMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the cash dividend.",
        "label": "Cash Dividend [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashFlowHedgingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashFlowHedgingMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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": [
      "r119"
     ]
    },
    "us-gaap_CashPassThroughReserveFederalHomeLoanBank": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashPassThroughReserveFederalHomeLoanBank",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash pass-through reserve, federal home loan bank",
        "label": "Cash Pass-through Reserve, Federal Home Loan Bank",
        "documentation": "Amount of pass-through reserves deposited with Federal Reserve Banks from member institutions of Federal Home Loan Banks (FHLBanks)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashSurrenderValueOfLifeInsurance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashSurrenderValueOfLifeInsurance",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash value of life insurance policies",
        "label": "Cash Surrender Value of Life Insurance",
        "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": [
      "r1068"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferAccretableYield": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferAccretableYield",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer, Accretable Yield",
        "negatedLabel": "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",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer, Nonaccretable Difference",
        "negatedLabel": "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/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "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": [
      "r84",
      "r86"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAccretion": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAccretion",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield, Accretion",
        "negatedLabel": "Accretion",
        "negatedTerseLabel": "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": [
      "r84",
      "r86"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAdditions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldAdditions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Accretable Yield, Additions",
        "terseLabel": "Merger",
        "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": [
      "r84",
      "r86"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldReclassificationsFromNonaccretableDifference": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldReclassificationsFromNonaccretableDifference",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "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": [
      "r84",
      "r86"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodCashFlowsExpectedToBeCollectedAtAcquisition",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected cash flows",
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Acquired During Period, Cash Flows Expected to be Collected at Acquisition",
        "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": [
      "r84",
      "r87"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAcquiredDuringPeriodContractuallyRequiredPaymentsReceivableAtAcquisition",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans acquired - contractual payments",
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Acquired During Period, Contractually Required Payments Receivable at Acquisition",
        "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": [
      "r84",
      "r87"
     ]
    },
    "us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesCarryingAmountNet",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Carrying balance at acquisition date",
        "label": "Certain Loans Acquired in Transfer Not Accounted for as Debt Securities, Carrying Amount, Net",
        "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": [
      "r84",
      "r85"
     ]
    },
    "cofs_CertificatesOfDepositIssuedThroughCDARS": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CertificatesOfDepositIssuedThroughCDARS",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Certificates of deposit issued through CDARS",
        "documentation": "Certificates of deposit issued through the Certificate of Deposit Account Registry Service (CDARS).",
        "label": "cofs_CertificatesOfDepositIssuedThroughCDARS"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ChoiceOneBankMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ChoiceOneBankMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to ChoiceOne Bank.",
        "label": "ChoiceOne Bank [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231",
     "localname": "CollateralDependentLoansFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collateral Dependent Loans",
        "label": "Collateral Dependent Loans Fair Value Disclosure",
        "documentation": "Collateral Dependent Loans Fair Value Disclosure"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialAndIndustrialAndResidentialRealEstatePortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommercialAndIndustrialAndResidentialRealEstatePortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial And Industrial And Residential Real Estate Portfolio Segment",
        "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/20231231",
     "localname": "CommercialAndIndustrialMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial and Industrial [Member]",
        "documentation": "Represents information related to commercial and industrial.",
        "label": "Commercial and Industrial [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommercialAndIndustrialPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommercialAndIndustrialPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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_CommercialRealEstateLoans": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommercialRealEstateLoans",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of investment in mortgage loan on commercial real estate.",
        "label": "cofs_CommercialRealEstateLoans",
        "terseLabel": "Commercial Real Estate Loans"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommercialRealEstatePortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommercialRealEstatePortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Commercial Real Estate [Member]",
        "terseLabel": "Commercial Real Estate Portfolio Segment [Member]",
        "label": "Commercial Real Estate Portfolio Segment [Member]",
        "documentation": "Portfolio segment of the company's total financing receivables related to commercial real estate."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommericalAgriculturalCommercialAndIndustrialCommercialRealEstateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommericalAgriculturalCommercialAndIndustrialCommercialRealEstateMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commercial [Member]",
        "label": "Commerical-Agricultural, Commercial and Industrial, Commercial Real Estate [Member]",
        "documentation": "Commerical-agricultural, commercial and industrial, commercial real estate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss Contingencies",
        "label": "Commitments and Contingencies, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r977"
     ]
    },
    "us-gaap_CommonEquityTierOneCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonEquityTierOneCapital",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets)",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital, Actual",
        "documentation": "Amount of Common Equity Tier 1 risk-based capital as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CommonEquityTierOneCapitalRatio": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonEquityTierOneCapitalRatio",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets), Ratio",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital Ratio, Actual",
        "documentation": "Ratio of Common Equity Tier 1 risk-based capital to risk-weighted assets as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CommonEquityTierOneCapitalRequiredForCapitalAdequacy": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonEquityTierOneCapitalRequiredForCapitalAdequacy",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets), Minimum Required for Capital Adequacy Purposes",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital, Capital Adequacy, Minimum",
        "documentation": "Amount of minimum Common Equity Tier 1 risk-based capital required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_CommonEquityTierOneCapitalRequiredToBeWellCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonEquityTierOneCapitalRequiredToBeWellCapitalized",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common equity Tier 1 capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations",
        "label": "Banking Regulation, Common Equity Tier 1 Risk-Based Capital, Well Capitalized, Minimum",
        "documentation": "Amount of minimum Common Equity Tier 1 risk-based capital categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_CommonStockDividendsPerShareDeclared": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockDividendsPerShareDeclared",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-parentheticals",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Dividends declared per share",
        "label": "Common Stock, Dividends, Per Share, Declared",
        "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": [
      "r203"
     ]
    },
    "us-gaap_CommonStockIncludingAdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockIncludingAdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock and Paid in Capital [Member]",
        "label": "Common Stock Including Additional 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/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value (in dollars per share)",
        "label": "Common Stock, No Par Value",
        "documentation": "Face amount per share of no-par value common stock."
       }
      }
     },
     "auth_ref": [
      "r172"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, authorized (in shares)",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r906"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, outstanding (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "periodEndLabel": "Balance (in shares)",
        "periodStartLabel": "Balance (in shares)",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r172",
      "r906",
      "r925",
      "r1305",
      "r1306"
     ]
    },
    "us-gaap_CommonStocksIncludingAdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStocksIncludingAdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock and paid-in capital, no par value; shares authorized: 15,000,000; shares outstanding: 7,548,217 at December 31, 2023 and 7,516,098 at December 31, 2022 (Note 16)",
        "label": "Common Stocks, Including Additional Paid in Capital",
        "documentation": "Amount of par value plus amounts in excess of par value or issuance value for common stock issued."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r173",
      "r203"
     ]
    },
    "cofs_CommunityReinvestmentActCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommunityReinvestmentActCreditMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Community Reinvestment Act Credit [Member]",
        "label": "Community Reinvestment Act Credit [Member]",
        "documentation": "Community reinvestment act credit."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommunityShoresBankCorpCommunityShoresMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommunityShoresBankCorpCommunityShoresMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Community Shores Bank Corp (\"Community Shores\") [Member]",
        "documentation": "Represents information related to community shores bank corp.",
        "label": "Community Shores Bank Corp (\"Community Shores\") [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CommunityShoresBankCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CommunityShoresBankCorporationMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to Community Shores Bank Corporation.",
        "label": "Community Shores Bank Corporation [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComplianceWithRegulatoryCapitalRequirementsForMortgageCompaniesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComplianceWithRegulatoryCapitalRequirementsForMortgageCompaniesLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compliance with Regulatory Capital Requirements for Mortgage Companies [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": [
      "r970",
      "r971",
      "r972",
      "r973"
     ]
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "Comprehensive income (loss)",
        "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": [
      "r47",
      "r326",
      "r328",
      "r335",
      "r819",
      "r857"
     ]
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Comprehensive Income",
        "label": "Comprehensive Income, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for comprehensive income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivities1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Off-Balance Sheet Activities",
        "label": "Concentration Risk Disclosure [Text Block]",
        "documentation": "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r190"
     ]
    },
    "srt_CondensedFinancialInformationOfParentCompanyOnlyDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CondensedFinancialInformationOfParentCompanyOnlyDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Condensed Financial Information Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CondensedFinancialInformationOfParentCompanyOnlyDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompany1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Condensed Financial Statements of Parent Company",
        "label": "Condensed Financial Information of Parent Company Only Disclosure [Text Block]",
        "documentation": "The entire disclosure for condensed financial information, including the financial position, cash flows, and the results of operations of the registrant (parent company) as of the same dates or for the same periods for which audited consolidated financial statements are being presented. Alternatively, the details of this disclosure can be reported by the specific parent company taxonomy elements, indicating the appropriate date and period contexts in an instance document."
       }
      }
     },
     "auth_ref": [
      "r302",
      "r356",
      "r1044"
     ]
    },
    "srt_ConsolidatedEntitiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidatedEntitiesAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidated Entities [Axis]",
        "documentation": "Information by consolidated entity or group of entities."
       }
      }
     },
     "auth_ref": [
      "r296",
      "r356",
      "r680",
      "r681",
      "r682",
      "r683",
      "r771",
      "r978",
      "r1062",
      "r1063",
      "r1064",
      "r1161",
      "r1164",
      "r1165"
     ]
    },
    "srt_ConsolidatedEntitiesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ConsolidatedEntitiesDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidated Entities [Domain]",
        "documentation": "Entity or group of entities consolidated into reporting entity."
       }
      }
     },
     "auth_ref": [
      "r296",
      "r356",
      "r680",
      "r681",
      "r682",
      "r683",
      "r771",
      "r978",
      "r1062",
      "r1063",
      "r1064",
      "r1161",
      "r1164",
      "r1165"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Principles of Consolidation",
        "label": "Consolidation, Policy [Policy Text Block]",
        "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": [
      "r113",
      "r987"
     ]
    },
    "cofs_ConstructionRealEstateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ConstructionRealEstateMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Construction Real Estate [Member]",
        "documentation": "Represents information related to construction real estate.",
        "label": "Construction Real Estate [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConsumerLoanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsumerLoanMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consumer Loan [Member]",
        "label": "Consumer Loan [Member]",
        "documentation": "Loan or extension of credit for personal, family, or household use excluding real estate."
       }
      }
     },
     "auth_ref": [
      "r1000"
     ]
    },
    "us-gaap_ConsumerPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsumerPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Consumer [Member]",
        "terseLabel": "Consumer Portfolio Segment [Member]",
        "label": "Consumer Portfolio Segment [Member]",
        "documentation": "Portfolio segment of the company's total financing receivables related to consumer receivables."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CoreDepositsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CoreDepositsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Core Deposits [Member]",
        "documentation": "Entity's long-term relationships with depositors, commonly known as core deposit intangibles, which are separate from the financial instruments themselves."
       }
      }
     },
     "auth_ref": [
      "r161"
     ]
    },
    "us-gaap_CorporateDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CorporateDebtSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate [Member]",
        "label": "Corporate Debt Securities [Member]",
        "documentation": "Debt securities issued by domestic or foreign corporate business, banks and other entities with a promise of repayment."
       }
      }
     },
     "auth_ref": [
      "r1010",
      "r1012",
      "r1298"
     ]
    },
    "cofs_CountyBankCorpCountyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CountyBankCorpCountyMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "County Bank Corp (\"County\") [Member]",
        "documentation": "Represents information related to County Bank Corp (\"County\").",
        "label": "County Bank Corp (\"County\") [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_CountyBankCorpMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CountyBankCorpMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to County Bank Corp.",
        "label": "County Bank Corp [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "terseLabel": "Cover",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditLossFinancialInstrumentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CreditLossFinancialInstrumentPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Credit Losses (\"ACL\")",
        "label": "Credit Loss, Financial Instrument [Policy Text Block]",
        "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": [
      "r281",
      "r480",
      "r481",
      "r482",
      "r484",
      "r485",
      "r492",
      "r498",
      "r499",
      "r500",
      "r501",
      "r506",
      "r507",
      "r508",
      "r510",
      "r511",
      "r512",
      "r518"
     ]
    },
    "cofs_CreditRiskConcentrationsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CreditRiskConcentrationsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Financial Instruments with Off-Balance Sheet Risk",
        "documentation": "Tabular disclosure of contractual amount of financial instruments with off-balance sheet risk.",
        "label": "Credit Risk, Concentrations [Table Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustedBalanceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustedBalanceMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cumulative Effect, Period of Adoption, Adjusted Balance [Member]",
        "label": "Cumulative Effect, Period of Adoption, Adjusted Balance [Member]",
        "documentation": "Represents amount after cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r1048",
      "r1065",
      "r1093",
      "r1142",
      "r1143",
      "r1254",
      "r1255",
      "r1256",
      "r1262",
      "r1263",
      "r1269",
      "r1270",
      "r1271",
      "r1277"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cumulative Effect, Period of Adoption, Adjustment [Member]",
        "terseLabel": "Cumulative Effect of Change in Accounting Principle",
        "label": "Cumulative Effect, Period of Adoption, Adjustment [Member]",
        "documentation": "Increase (decrease) to financial statements for cumulative-effect adjustment in period of adoption of amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r299",
      "r360",
      "r367",
      "r373",
      "r473",
      "r479",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r698",
      "r699",
      "r701",
      "r702",
      "r703",
      "r708",
      "r711",
      "r713",
      "r714",
      "r763"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Axis]",
        "documentation": "Information by cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r299",
      "r360",
      "r367",
      "r373",
      "r473",
      "r479",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r698",
      "r699",
      "r701",
      "r702",
      "r703",
      "r708",
      "r711",
      "r713",
      "r714",
      "r763"
     ]
    },
    "srt_CumulativeEffectPeriodOfAdoptionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CumulativeEffectPeriodOfAdoptionDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Effect, Period of Adoption [Domain]",
        "documentation": "Cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r299",
      "r360",
      "r367",
      "r373",
      "r473",
      "r479",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r698",
      "r699",
      "r701",
      "r702",
      "r703",
      "r708",
      "r711",
      "r713",
      "r714",
      "r763"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": []
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current federal income tax expense",
        "totalLabel": "Current Income Tax Expense (Benefit), Total",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r663",
      "r671",
      "r1087"
     ]
    },
    "cofs_CustomerServiceCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "CustomerServiceCharges",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of revenue from customer services charges and fees.",
        "label": "Customer service charges"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [Axis]",
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r167",
      "r168",
      "r218",
      "r220",
      "r356",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r752",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1085"
     ]
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, basis spread on variable rate",
        "label": "Debt Instrument, Basis Spread on Variable Rate",
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtInstrumentCarryingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentCarryingAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Gross",
        "terseLabel": "Long-term debt, carrying amount",
        "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r220",
      "r571"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt instrument, interest rate, effective percentage",
        "label": "Debt Instrument, Interest Rate, Effective Percentage",
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r145",
      "r572",
      "r752"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Interest rate",
        "terseLabel": "Debt instrument, interest rate, stated percentage",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement."
       }
      }
     },
     "auth_ref": [
      "r41",
      "r555"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [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": [
      "r356",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r752",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1085"
     ]
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument, Name [Domain]",
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r356",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r752",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1085"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Long-Term Debt Instruments [Table]",
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r98",
      "r99",
      "r144",
      "r145",
      "r147",
      "r162",
      "r201",
      "r202",
      "r356",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r752",
      "r1004",
      "r1005",
      "r1006",
      "r1007",
      "r1008",
      "r1085"
     ]
    },
    "us-gaap_DebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecurities",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Securities pledged",
        "totalLabel": "Debt Securities, Total",
        "label": "Debt Securities",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), investment in debt security measured at amortized cost (held-to-maturity), and investment in debt security measured at fair value with change in fair value recognized in net income (trading)."
       }
      }
     },
     "auth_ref": [
      "r431",
      "r841"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "More than 12 months, fair value",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "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": [
      "r259",
      "r517",
      "r1002"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "More than 12 months, unrealized losses",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "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": [
      "r259",
      "r517"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 12 months, fair value",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "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": [
      "r259",
      "r517",
      "r1002"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 12 months, unrealized losses",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "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": [
      "r259",
      "r517"
     ]
    },
    "cofs_DebtSecuritiesAvailableForSaleNumberOfPositionsSold": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DebtSecuritiesAvailableForSaleNumberOfPositionsSold",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt securities, available-for-sale, number of positions sold",
        "documentation": "Number of investments in debt securities measured at fair value which have been sold.",
        "label": "cofs_DebtSecuritiesAvailableForSaleNumberOfPositionsSold"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DebtSecuritiesAvailableForSalePricePerPosition": {
     "xbrltype": "pureItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DebtSecuritiesAvailableForSalePricePerPosition",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt securities, available-for-sale, price per position",
        "documentation": "Per position price for debt securities classified as available-for-sale.",
        "label": "cofs_DebtSecuritiesAvailableForSalePricePerPosition"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedGain",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSalesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Realized Gain",
        "terseLabel": "Gross realized gains",
        "documentation": "Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r465"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 4.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Net loss on sale of securities",
        "terseLabel": "Gains (losses) on sales of securities",
        "verboseLabel": "Net (losses) gains on sales of securities (Note 2)",
        "totalLabel": "Debt Securities, Available-for-Sale, Realized Gain (Loss), Total",
        "label": "Debt Securities, Available-for-Sale, Realized Gain (Loss)",
        "negatedLabel": "Net (gains) losses on sales of securities",
        "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": [
      "r1136"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSalesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Securities, Available-for-Sale, Realized Loss",
        "negatedTerseLabel": "Gross realized losses",
        "documentation": "Amount of realized 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": [
      "r465"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Gross Unrealized Gains and Losses on Investment Securities Available for Sale Recognized in Accumulated Other Comprehensive Income (loss)",
        "label": "Debt Securities, Available-for-Sale [Table Text Block]",
        "documentation": "Tabular disclosure of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r1107",
      "r1108",
      "r1109",
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1136"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total, fair value",
        "terseLabel": "Total, fair value",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position",
        "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": [
      "r256",
      "r514",
      "r1002"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total, unrealized losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss",
        "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": [
      "r257",
      "r515"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionFairValueTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Available for Sale Securities with Unrealize Losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Fair Value [Table Text Block]",
        "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": [
      "r255",
      "r1002",
      "r1148"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionNumberOfPositions": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionNumberOfPositions",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r258",
      "r516"
     ]
    },
    "us-gaap_DebtSecuritiesHeldToMaturityAmortizedCostAfterAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesHeldToMaturityAmortizedCostAfterAllowanceForCreditLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities held to maturity, at amortized cost (Note 2)",
        "totalLabel": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Total",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss",
        "documentation": "Amount, after allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r432",
      "r450",
      "r452",
      "r816"
     ]
    },
    "cofs_DebtSecuritiesHeldToMaturityUnrealizedLossPositionFairValueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DebtSecuritiesHeldToMaturityUnrealizedLossPositionFairValueTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Held to Maturity 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 (held-to-maturity), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset.",
        "label": "Debt Securities, Held-to-maturity, Unrealized Loss Position, Fair Value [Table Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DebtSecuritiesHeldtomaturityFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DebtSecuritiesHeldtomaturityFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities held to maturity",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity).",
        "label": "Securities held to maturity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Securities [Member]",
        "label": "Debt Securities [Member]",
        "documentation": "Debt instrument issued by corporations, governments and governmental agencies, municipalities, and other institutions."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r1025",
      "r1307"
     ]
    },
    "cofs_DebtSecuritiesPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DebtSecuritiesPercent",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred federal income tax (expense) benefit",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "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": [
      "r1087",
      "r1261",
      "r1264"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred federal income tax expense/(benefit)",
        "totalLabel": "Deferred Income Tax Expense (Benefit), Total",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r207",
      "r280",
      "r670",
      "r671",
      "r1087"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "cofs_DeferredTaxAssetsNetOfAllowanceAndLiability",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Gross",
        "totalLabel": "Total deferred tax liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r170",
      "r219",
      "r659"
     ]
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets:",
        "label": "Deferred Tax Assets, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "cofs_DeferredTaxAssetsNetOfAllowanceAndLiability",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Net of Valuation Allowance",
        "totalLabel": "Total deferred tax assets",
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1259"
     ]
    },
    "cofs_DeferredTaxAssetsNetOfAllowanceAndLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DeferredTaxAssetsNetOfAllowanceAndLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset and deferred tax liabilities attributable to deductible temporary differences and carryforwards.",
        "label": "cofs_DeferredTaxAssetsNetOfAllowanceAndLiability",
        "totalLabel": "Net deferred tax asset (liability)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred Tax Assets, Operating Loss Carryforwards, Total",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards",
        "terseLabel": "Net operating loss carryforward",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets, federal net operating loss carryforwards",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Other",
        "terseLabel": "Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "cofs_DeferredTaxAssetsPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DeferredTaxAssetsPurchaseAccountingAdjustments",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to purchase accounting adjustments.",
        "label": "Purchase accounting adjustments from mergers with County and Community Shores"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation",
        "totalLabel": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Total",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsProvisionForLoanLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsProvisionForLoanLosses",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for credit losses",
        "label": "Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Financing Receivable, Allowance for Credit Loss",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "cofs_DeferredTaxAssetsUnfundedCommitmentReserve": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DeferredTaxAssetsUnfundedCommitmentReserve",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unfunded commitment reserve",
        "label": "Deferred Tax Assets, Unfunded Commitment Reserve",
        "documentation": "Deferred tax assets unfunded commitment reserve."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsUnrealizedLossesOnAvailableforSaleSecuritiesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsUnrealizedLossesOnAvailableforSaleSecuritiesGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized losses on securities available for sale",
        "label": "Deferred Tax Asset, Debt Securities, Available-for-Sale, Unrealized Loss",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from unrealized 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": [
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesDeferredExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesDeferredExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred Tax Liabilities, Deferred Expense, Total",
        "label": "Deferred Tax Liabilities, Deferred Expense",
        "terseLabel": "Deferred loan fees and costs, net",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from capitalized costs."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesDerivatives": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesDerivatives",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Derivatives",
        "terseLabel": "Interest rate derivative contracts",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from derivatives."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesMortgageServicingRights": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesMortgageServicingRights",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Mortgage Servicing Rights",
        "terseLabel": "Loan servicing rights",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from mortgage servicing rights."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Other",
        "terseLabel": "Other",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "terseLabel": "Depreciation",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r1260"
     ]
    },
    "cofs_DeferredTaxLiabilitiesPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DeferredTaxLiabilitiesPurchaseAccountingAdjustments",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to purchase accounting adjustments.",
        "label": "cofs_DeferredTaxLiabilitiesPurchaseAccountingAdjustments",
        "terseLabel": "Purchase accounting adjustments from mergers with County and Community Shores"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Defined contribution plan, cost",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r593"
     ]
    },
    "us-gaap_DefinedContributionPlanDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanDisclosureLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Defined Contribution Plan Disclosure [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": [
      "r593"
     ]
    },
    "us-gaap_DefinedContributionPlanTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Defined Contribution Plan [Table]",
        "documentation": "Disclosure of information about defined contribution pension plans or defined contribution other postretirement plans, separately for pension plans and other postretirement benefit plans."
       }
      }
     },
     "auth_ref": [
      "r593"
     ]
    },
    "us-gaap_DepositLiabilitiesDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepositLiabilitiesDisclosuresTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDeposits"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deposits",
        "label": "Deposit Liabilities Disclosures [Text Block]",
        "documentation": "The entire disclosure for deposit liabilities including data and tables. It may include a description of the entity's deposit liabilities, the aggregate amount of time deposits (including certificates of deposit) in denominations of $100,000 or more at the balance sheet date; the aggregate amount of any demand deposits that have been reclassified as loan balances, such as overdrafts, at the balance sheet date; deposits that are received on terms other than those in the normal course of business, the amount of accrued interest on deposit liabilities; securities, mortgage loans or other financial instruments that serve as collateral for deposits; for time deposits having a remaining term of more than one year, the aggregate amount of maturities for each of the five years following the balance sheet date; and the weighted average interest rate for all deposit liabilities held by the entity."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r153",
      "r294",
      "r295"
     ]
    },
    "us-gaap_Deposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Deposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deposits",
        "totalLabel": "Total 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": [
      "r153"
     ]
    },
    "us-gaap_DepositsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepositsFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Brokered deposits",
        "label": "Deposits, Fair Value Disclosure",
        "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_DepositsMoneyMarketDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepositsMoneyMarketDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market deposits",
        "label": "Deposits, Money Market Deposits",
        "documentation": "Amount of deposits in accounts that offer many of the same services as checking accounts although transactions may be somewhat more limited, share some of the characteristics of a money market fund and are insured by the Federal government, also known as money market accounts."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_DepositsSavingsDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DepositsSavingsDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Savings deposits",
        "label": "Deposits, Savings Deposits",
        "documentation": "Amount of interest bearing deposits with no stated maturity, which may include passbook and statement savings accounts and money-market deposit accounts (MMDAs)."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Depreciation",
        "totalLabel": "Depreciation, Total",
        "label": "Depreciation",
        "terseLabel": "Depreciation, Total",
        "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": [
      "r10",
      "r94"
     ]
    },
    "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "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": [
      "r684"
     ]
    },
    "us-gaap_DerivativeAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssets",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Interest rate derivative contracts",
        "terseLabel": "Interest rate contracts",
        "totalLabel": "Derivative Asset, Total",
        "label": "Derivative Asset",
        "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": [
      "r315",
      "r316",
      "r735",
      "r888",
      "r889",
      "r890",
      "r891",
      "r892",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r912",
      "r913",
      "r957",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966",
      "r984",
      "r1025",
      "r1299"
     ]
    },
    "us-gaap_DerivativeBasisSpreadOnVariableRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeBasisSpreadOnVariableRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "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": [
      "r895",
      "r897",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r936",
      "r937",
      "r938",
      "r939",
      "r942",
      "r943",
      "r944",
      "r945",
      "r957",
      "r959",
      "r963",
      "r965",
      "r1024",
      "r1025"
     ]
    },
    "cofs_DerivativeFixedCouponRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DerivativeFixedCouponRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fixed coupon rate related to the derivative.",
        "label": "cofs_DerivativeFixedCouponRate",
        "terseLabel": "Derivative, Fixed Coupon Rate"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeFloorInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeFloorInterestRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative, Floor Interest Rate",
        "terseLabel": "Derivative, Floor Interest Rate",
        "documentation": "Floor rate on an interest rate derivative such as an interest rate floor or collar. If market rates falls below the floor rate, a payment or receipt is triggered on the contract."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeGainLossOnDerivativeNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Derivative, Gain (Loss) on Derivative, Net, Total",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "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",
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r1267"
     ]
    },
    "us-gaap_DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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": [
      "r1267"
     ]
    },
    "cofs_DerivativeInstrumentCashPayment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DerivativeInstrumentCashPayment",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative instrument cash payment",
        "label": "Derivative Instrument Cash Payment",
        "documentation": "Derivative instrument cash payment."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DerivativeInstrumentNetCashSettlementsReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DerivativeInstrumentNetCashSettlementsReceived",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents net cash settlements received for derivative instrument.",
        "label": "cofs_DerivativeInstrumentNetCashSettlementsReceived",
        "terseLabel": "Derivative Instrument, Net cash settlements received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentRiskAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative Instrument [Axis]",
        "documentation": "Information by type of derivative contract."
       }
      }
     },
     "auth_ref": [
      "r123",
      "r125",
      "r127",
      "r131",
      "r895",
      "r897",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r936",
      "r937",
      "r938",
      "r939",
      "r942",
      "r943",
      "r944",
      "r945",
      "r957",
      "r959",
      "r963",
      "r965",
      "r984",
      "r1024",
      "r1025"
     ]
    },
    "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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivities1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative and Hedging Activities",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "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": [
      "r209",
      "r691",
      "r704"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Relationship [Axis]",
        "documentation": "Information by type of hedging relationship."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r123",
      "r127"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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": [
      "r24",
      "r123",
      "r127",
      "r131",
      "r136",
      "r137",
      "r688"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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": [
      "r688"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net, Total",
        "label": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net",
        "verboseLabel": "Amount of gain or (loss) reclassified from accumulated other comprehensive income into income",
        "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": [
      "r32",
      "r129"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossRecognizedInIncomeIneffectivePortionAndAmountExcludedFromEffectivenessTestingNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Derivative Instruments, Gain (Loss) Recognized in Income, Ineffective Portion and Amount Excluded from Effectiveness Testing, Net, Total",
        "label": "Derivative Instruments, Gain (Loss) Recognized in Income, Ineffective Portion and Amount Excluded from Effectiveness Testing, Net",
        "verboseLabel": "Amount excluded from effectiveness testing recognized in earnings based on amortization approach",
        "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": [
      "r130",
      "r138"
     ]
    },
    "cofs_DerivativeInstrumentsNetCashSettlementsReceived": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DerivativeInstrumentsNetCashSettlementsReceived",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Net 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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest rate contracts",
        "verboseLabel": "Interest rate derivative contracts",
        "terseLabel": "Interest rate derivative contracts 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": [
      "r315",
      "r316",
      "r735",
      "r888",
      "r889",
      "r890",
      "r891",
      "r893",
      "r894",
      "r895",
      "r896",
      "r897",
      "r920",
      "r922",
      "r923",
      "r959",
      "r960",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966",
      "r984",
      "r1299"
     ]
    },
    "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "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": [
      "r684"
     ]
    },
    "us-gaap_DerivativeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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": [
      "r704"
     ]
    },
    "us-gaap_DerivativeLossOnDerivative": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLossOnDerivative",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss on derivative",
        "verboseLabel": "Derivative, 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": [
      "r685"
     ]
    },
    "us-gaap_DerivativeNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeNotionalAmount",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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": [
      "r1265",
      "r1266"
     ]
    },
    "us-gaap_DerivativeNumberOfInstrumentsHeld": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeNumberOfInstrumentsHeld",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, number of instruments held",
        "totalLabel": "Derivative, Number of Instruments Held, Total",
        "label": "Derivative, Number of Instruments Held",
        "documentation": "The number of derivative instruments of a particular group held by the entity."
       }
      }
     },
     "auth_ref": [
      "r116",
      "r117",
      "r896",
      "r957",
      "r958",
      "r961",
      "r1025"
     ]
    },
    "cofs_DerivativeNumberOfInstrumentsSold": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DerivativeNumberOfInstrumentsSold",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of derivative instruments sold.",
        "label": "Derivative Number of Instruments Sold",
        "terseLabel": "Derivative, Number of Instruments Sold"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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": [
      "r24",
      "r114",
      "r115",
      "r117",
      "r120",
      "r124",
      "r127",
      "r133",
      "r135",
      "r137",
      "r704"
     ]
    },
    "us-gaap_DerivativeTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeTermOfContract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Derivative, Term of Contract",
        "terseLabel": "Derivative, Term of Contract (Year)",
        "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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "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_DerivativesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativesPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivatives",
        "label": "Derivatives, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r114",
      "r115",
      "r120",
      "r134",
      "r355"
     ]
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DesignatedAsHedgingInstrumentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Designated as Hedging Instrument [Member]",
        "label": "Designated as Hedging Instrument [Member]",
        "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r603",
      "r608",
      "r639",
      "r640",
      "r642",
      "r1016"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureTextBlockAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disclosure Text Block [Abstract]",
        "terseLabel": "Notes to Financial Statements"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_DividendRestrictionsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "DividendRestrictionsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividend Restrictions",
        "documentation": "Disclosure of accounting policy for dividend restrictions.",
        "label": "Dividend Restrictions, Policy [Policy Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DividendsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-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/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends, Common Stock, Cash",
        "negatedLabel": "Cash dividends declared",
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash."
       }
      }
     },
     "auth_ref": [
      "r203"
     ]
    },
    "us-gaap_DividendsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-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_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039",
      "r1041"
     ]
    },
    "dei_DocumentFinStmtRestatementRecoveryAnalysisFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFinStmtRestatementRecoveryAnalysisFlag",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Financial Statement Restatement Recovery Analysis [Flag]",
        "documentation": "Indicates whether any of the financial statement periods include restatements that required a recovery analysis of incentive-based compensation received by any of the registrant's executive officers during the relevant recovery period pursuant to \u00a7240.10D-1(b)."
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039",
      "r1041"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/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/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Information:",
        "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/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Information",
        "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/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Period End Date",
        "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_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1040"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "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": []
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Documents Incorporated by Reference",
        "label": "Documents Incorporated by Reference [Text Block]",
        "documentation": "Documents incorporated by reference."
       }
      }
     },
     "auth_ref": [
      "r1035"
     ]
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Domestic Tax Authority [Member]",
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DoubtfulMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DoubtfulMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Doubtful",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "us-gaap_EarliestTaxYearMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarliestTaxYearMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earliest Tax Year",
        "label": "Earliest Tax Year [Member]",
        "documentation": "Earliest identified tax year."
       }
      }
     },
     "auth_ref": [
      "r1258"
     ]
    },
    "cofs_EarningOnDeathBenefitFromBankOwnedLifeInsurance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "EarningOnDeathBenefitFromBankOwnedLifeInsurance",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Earnings on death benefit from bank-owned life insurance",
        "label": "Earning on Death Benefit From Bank Owned Life Insurance",
        "documentation": "Represents earnings on death benefit from bank owned life insurance."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basic earnings per share (Note 16)",
        "terseLabel": "Basic earnings per common shares",
        "totalLabel": "Earnings Per Share, Basic, Total",
        "label": "Earnings Per Share, Basic",
        "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": [
      "r336",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r375",
      "r378",
      "r388",
      "r389",
      "r390",
      "r394",
      "r714",
      "r715",
      "r820",
      "r858",
      "r989"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Diluted earnings per share (Note 16)",
        "terseLabel": "Diluted earnings per common share",
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "label": "Earnings Per Share, Diluted",
        "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": [
      "r336",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r378",
      "r388",
      "r389",
      "r390",
      "r394",
      "r714",
      "r715",
      "r820",
      "r858",
      "r989"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r63"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r374",
      "r391",
      "r392",
      "r393"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective income tax rate",
        "totalLabel": "Effective Income Tax Rate Reconciliation, Percent, Total",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r655"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax statutory federal rate",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r350",
      "r655",
      "r672"
     ]
    },
    "cofs_EffectiveIncomeTaxRateReconciliationDisallowedInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationDisallowedInterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to disallowed interest expense.",
        "label": "Disallowed interest expense"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment nonvested award, cost not yet recognized, period for recognition",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r641"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based payment, nonvested award, excluding option, cost not yet recognized, amount",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r1253"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized compensation expense related to stock options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1253"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Share-Based Payment Arrangement, Option [Member]",
        "terseLabel": "Employee Stock Option",
        "label": "Employee Stock Option [Member]",
        "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": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/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/20231231/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/20231231/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/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "CIK",
        "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": [
      "r1034"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Entities",
        "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/20231231/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": [
      "r1034"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities Act File Number",
        "label": "Entity 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/20231231/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": [
      "r1034"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/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": [
      "r1042"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Registrant Name",
        "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": [
      "r1034"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1034"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1034"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1034"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r1043"
     ]
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "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": [
      "r23",
      "r299",
      "r330",
      "r331",
      "r332",
      "r357",
      "r358",
      "r359",
      "r362",
      "r370",
      "r372",
      "r395",
      "r473",
      "r479",
      "r574",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r698",
      "r699",
      "r700",
      "r701",
      "r703",
      "r713",
      "r741",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r765",
      "r866",
      "r867",
      "r868",
      "r885",
      "r948"
     ]
    },
    "cofs_EquityInUndistributedNetIncomeOfSubsidiaries": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "EquityInUndistributedNetIncomeOfSubsidiaries",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity in undistributed income of subsidiaries for the parent during the period.",
        "label": "Equity in undistributed net income of subsidiary"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquitySecuritiesFvNi": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNi",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails1",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Equity securities, at fair value (Note 2)",
        "terseLabel": "Equity securities at fair value",
        "label": "Equity Securities, FV-NI, Current",
        "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": [
      "r311",
      "r733",
      "r983"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiCost",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortized Cost",
        "label": "Equity Securities, FV-NI, 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": [
      "r842"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net gains and losses recognized during the period",
        "negatedLabel": "Net change in market value of equity securities",
        "negatedTerseLabel": "Net change in market value of equity securities",
        "terseLabel": "Change in market value of equity securities",
        "label": "Equity Securities, FV-NI, Gain (Loss)",
        "verboseLabel": "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": [
      "r861",
      "r1140"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiRealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiRealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": "us-gaap_EquitySecuritiesFvNiGainLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Equity Securities, FV-NI, Realized Gain (Loss), Total",
        "label": "Equity Securities, FV-NI, Realized Gain (Loss)",
        "verboseLabel": "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": [
      "r859",
      "r1140"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedGain",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities, FV-NI, Unrealized Gain",
        "terseLabel": "Gross Unrealized Gains",
        "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": [
      "r467"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedGainLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails": {
       "parentTag": "us-gaap_EquitySecuritiesFvNiGainLoss",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesUnrealizedGainsAndLossesOnEquitySecuritiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Net change in market value of equity securities",
        "terseLabel": "Change in market value of equity securities",
        "totalLabel": "Equity Securities, FV-NI, Unrealized Gain (Loss), Total",
        "label": "Equity Securities, FV-NI, Unrealized Gain (Loss)",
        "verboseLabel": "Unrealized gains and losses recognized during the reporting period on securities still held at the reporting date",
        "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": [
      "r860",
      "r1140"
     ]
    },
    "us-gaap_EquitySecuritiesFvNiUnrealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesFvNiUnrealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfEquitySecuritiesAndRelatedGrossUnrealizedGainsLossesRecognizedInInterestIncomeDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Securities, FV-NI, Unrealized Loss",
        "negatedLabel": "Gross Unrealized Losses",
        "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": [
      "r467"
     ]
    },
    "us-gaap_EquitySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquitySecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r89",
      "r1027",
      "r1028",
      "r1029",
      "r1307"
     ]
    },
    "us-gaap_EstimateOfFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EstimateOfFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Estimate of Fair Value Measurement [Member]",
        "documentation": "Measured as an estimate of fair value."
       }
      }
     },
     "auth_ref": [
      "r562",
      "r735",
      "r1005",
      "r1006"
     ]
    },
    "cofs_ExercisePriceRangeFourMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ExercisePriceRangeFourMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the fourth in a series of exercise price ranges.",
        "label": "Exercise Price Range Four [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ExercisePriceRangeOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ExercisePriceRangeOneMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the first in a series of exercise price ranges.",
        "label": "Exercise Price Range One [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ExercisePriceRangeThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ExercisePriceRangeThreeMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the third in a series of exercise price ranges.",
        "label": "Exercise Price Range Three [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ExercisePriceRangeTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ExercisePriceRangeTwoMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to the second in a series of exercise price ranges.",
        "label": "Exercise Price Range Two [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ExternalCreditRatingByGroupingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ExternalCreditRatingByGroupingAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r77",
      "r690",
      "r1147"
     ]
    },
    "us-gaap_ExternalCreditRatingByGroupingDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ExternalCreditRatingByGroupingDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r132"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r718",
      "r719",
      "r727"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r718",
      "r719",
      "r727"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnNonrecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnNonrecurringBasisTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Assets Measured at Fair Value on a Non-recurring Basis",
        "label": "Fair Value Measurements, Nonrecurring [Table Text Block]",
        "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": [
      "r25",
      "r139",
      "r211"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Assets and Liabilities Measured at Fair Value",
        "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]",
        "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": [
      "r139",
      "r211"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Class [Domain]",
        "documentation": "Class of asset."
       }
      }
     },
     "auth_ref": [
      "r26"
     ]
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Changes in Level 3 Assets Measured at Fair Value on a Recurring Basis",
        "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "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": [
      "r26",
      "r141"
     ]
    },
    "us-gaap_FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueBalanceSheetGroupingFinancialStatementCaptionsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Asset Class [Axis]",
        "documentation": "Information by class of asset."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r141"
     ]
    },
    "us-gaap_FairValueByBalanceSheetGroupingTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByBalanceSheetGroupingTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r139",
      "r142",
      "r143"
     ]
    },
    "us-gaap_FairValueByBalanceSheetGroupingTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByBalanceSheetGroupingTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Financial Instruments",
        "label": "Fair Value, by Balance Sheet Grouping [Table Text Block]",
        "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": [
      "r139",
      "r142"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r719",
      "r776",
      "r777",
      "r778",
      "r1005",
      "r1006",
      "r1010",
      "r1011",
      "r1012"
     ]
    },
    "us-gaap_FairValueByMeasurementBasisAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByMeasurementBasisAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Basis [Axis]",
        "documentation": "Information by measurement basis."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r139",
      "r562",
      "r1005",
      "r1006"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r718",
      "r719",
      "r720",
      "r721",
      "r728"
     ]
    },
    "us-gaap_FairValueDisclosureItemAmountsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosureItemAmountsDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r1005",
      "r1006"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "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": [
      "r717"
     ]
    },
    "us-gaap_FairValueHedgingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueHedgingMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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": [
      "r118"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r579",
      "r584",
      "r719",
      "r776",
      "r1010",
      "r1011",
      "r1012"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r579",
      "r584",
      "r719",
      "r777",
      "r1005",
      "r1006",
      "r1010",
      "r1011",
      "r1012"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r719",
      "r778",
      "r1005",
      "r1006",
      "r1010",
      "r1011",
      "r1012"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisChangeInUnrealizedGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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 December 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": [
      "r725"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisSubordinatedDebtObligations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisSubordinatedDebtObligations",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "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": [
      "r139",
      "r211"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/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/20231231/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": [
      "r722"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetGainLossIncludedInOtherComprehensiveIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total unrealized gains/(losses) 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": [
      "r723"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchases",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r140"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchasesSalesIssuancesSettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetPurchasesSalesIssuancesSettlements",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net purchases, sales, calls, and maturities",
        "totalLabel": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases, (Sales), Issuances, (Settlements), Total",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset, Purchases, (Sales), Issuances, (Settlements)",
        "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": [
      "r140"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetTransfersIntoLevel3",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r724"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisAssetValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Asset Value",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "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": [
      "r26"
     ]
    },
    "cofs_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsChangesInLevel3AssetsMeasuredAtFairValueOnARecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "cofs_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisTransfersIntoHeldtomaturitySecurity",
        "negatedLabel": "Transfer to held to maturity"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r562",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r776",
      "r777",
      "r778",
      "r1005",
      "r1006",
      "r1010",
      "r1011",
      "r1012"
     ]
    },
    "us-gaap_FairValueMeasurementsNonrecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsNonrecurringMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r718",
      "r719",
      "r720",
      "r721",
      "r726",
      "r728"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r717",
      "r728"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value of Financial Instruments",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r35"
     ]
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails"
     ],
     "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": [
      "r122",
      "r124",
      "r136"
     ]
    },
    "us-gaap_FederalDepositInsuranceCorporationPremiumExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalDepositInsuranceCorporationPremiumExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "FDIC insurance",
        "label": "Federal Deposit Insurance Corporation Premium Expense",
        "documentation": "Amount of expense for Federal Deposit Insurance Corporation (FDIC) insurance."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_FederalHomeLoanBankAdvancesBranchOfFHLBBankInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesBranchOfFHLBBankInterestRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest rate",
        "label": "Federal Home Loan Bank, Advances, Branch of FHLB Bank, Interest Rate",
        "documentation": "Discloses the single interest rate [if] applicable to the advances from the Federal Home Loan Bank, by branch, as of the Balance Sheet date."
       }
      }
     },
     "auth_ref": [
      "r163",
      "r244"
     ]
    },
    "us-gaap_FederalHomeLoanBankAdvancesBranchOfFHLBBankLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesBranchOfFHLBBankLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Federal Home Loan Bank, Advances, Branch of FHLB Bank [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_FederalHomeLoanBankAdvancesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowings"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Borrowings",
        "label": "Federal Home Loan Bank Advances, Disclosure [Text Block]",
        "documentation": "The entire disclosure for borrowing from the Federal Home Loan Bank, including: (i) general description; (ii) title and nature of obligation; (iii) interest rate; (iv) payment terms; (v) maturity dates by year; (vi) collateral requirements; (vii) restrictive covenants; (viii) priority; (ix) conversion or redemption features; (x) carrying value of assets pledged as collateral; (xi) combined aggregate maturities for next five years; (xii) unused or available balances."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r154",
      "r162",
      "r244"
     ]
    },
    "us-gaap_FederalHomeLoanBankAdvancesGeneralDebtObligationsDisclosuresAmountOfAvailableUnusedFunds": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesGeneralDebtObligationsDisclosuresAmountOfAvailableUnusedFunds",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal home loan bank, advances, general debt obligations, amount of available, unused funds",
        "label": "Federal Home Loan Bank, Advances, General Debt Obligations, Amount of Available, Unused Funds",
        "documentation": "Amount of advances or credit lines available from the Federal Home Loan Bank (FHLB)."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r222",
      "r244"
     ]
    },
    "us-gaap_FederalHomeLoanBankAdvancesGeneralDebtObligationsDisclosuresCollateralPledged1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesGeneralDebtObligationsDisclosuresCollateralPledged1",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal home loan bank, advances, general debt obligations, disclosures, collateral pledged",
        "label": "Federal Home Loan Bank, Advances, General Debt Obligations, Disclosures, Collateral Pledged",
        "documentation": "Amount of the collateral pledged in support of federal home loan bank advances outstanding."
       }
      }
     },
     "auth_ref": [
      "r164",
      "r244"
     ]
    },
    "cofs_FederalHomeLoanBankAdvancesMaturingDecember2026Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalHomeLoanBankAdvancesMaturingDecember2026Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Home Loan Bank Advances Maturing December 2026 [Member]",
        "label": "Federal Home Loan Bank Advances Maturing December 2026 Member]",
        "documentation": "Federal Home Loan Bank Advances Maturing December 2026."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FederalHomeLoanBankAdvancesMaturingJanuary2023Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalHomeLoanBankAdvancesMaturingJanuary2023Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Home Loan Bank Advances Maturing January 2023 [Member]",
        "documentation": "Related to advances.",
        "label": "Federal Home Loan Bank Advances Maturing January 2023 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FederalHomeLoanBankAdvancesMaturingJuly2025Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalHomeLoanBankAdvancesMaturingJuly2025Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Home Loan Bank Advances Maturing July 2025 [Member]",
        "label": "Federal Home Loan Bank Advances Maturing July 2025 Member]",
        "documentation": "Federal Home Loan Bank Advances Maturing July 2025."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FederalHomeLoanBankAdvancesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankAdvancesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Home Loan Bank [Member]",
        "label": "Federal Home Loan Bank Advances [Member]",
        "documentation": "Borrowings from the Federal Home Loan Bank, which are primarily used to cover shortages in the required reserve balance and also in times of liquidity shortages. The member institution executes a promissory note, which is generally collateralized by government securities to the Federal Reserve or loans."
       }
      }
     },
     "auth_ref": [
      "r222"
     ]
    },
    "us-gaap_FederalHomeLoanBankBorrowingsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankBorrowingsFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r222"
     ]
    },
    "us-gaap_FederalHomeLoanBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r243"
     ]
    },
    "us-gaap_FederalHomeLoanBankStockAndFederalReserveBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalHomeLoanBankStockAndFederalReserveBankStock",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Home Loan Bank and Federal Reserve Bank stock",
        "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": []
    },
    "cofs_FederalReserveBankAdvancesGeneralDebtObligationsAmountOfAvailableUnusedFunds": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalReserveBankAdvancesGeneralDebtObligationsAmountOfAvailableUnusedFunds",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal reserve bank advances, eligible borrowing capacity",
        "label": "Federal Reserve Bank Advances, General Debt Obligations, Amount of Available, Unused Funds",
        "documentation": "Federal Reserve Bank advances, general debt obligations, amount of available, unused funds."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FederalReserveBankGeneralDebtObligationsDisclosuresCollateralPledged": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalReserveBankGeneralDebtObligationsDisclosuresCollateralPledged",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal reserve bank , general debt obligations, disclosures, collateral pledged",
        "label": "Federal Reserve Bank , General Debt Obligations, Disclosures, Collateral Pledged",
        "documentation": "Federal Reserve Bank , general debt obligations, disclosures, collateral pledged."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FederalReserveBankMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FederalReserveBankMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal Reserve Bank [Member]",
        "label": "Federal Reserve Bank [Member]",
        "documentation": "Federal Reserve Bank."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FederalReserveBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FederalReserveBankStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r243"
     ]
    },
    "us-gaap_FinanceLoansAndLeasesReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinanceLoansAndLeasesReceivablePolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans",
        "label": "Financing Receivable [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r79",
      "r83",
      "r192",
      "r415",
      "r425",
      "r426",
      "r427"
     ]
    },
    "cofs_FinancialAsset30DaysPastDueOrMoreMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancialAsset30DaysPastDueOrMoreMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financial asset more than 30 days past due.",
        "label": "Financial Asset, 30 Days Past Due or More [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancialAssetNotPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialAssetNotPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Not Past Due [Member]",
        "documentation": "Financial asset not past due."
       }
      }
     },
     "auth_ref": [
      "r492",
      "r1001"
     ]
    },
    "us-gaap_FinancialAssetPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialAssetPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Asset, Past Due [Member]",
        "documentation": "Financial asset past due."
       }
      }
     },
     "auth_ref": [
      "r492",
      "r1001",
      "r1102"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r485",
      "r486",
      "r492",
      "r493",
      "r502",
      "r513",
      "r518",
      "r519",
      "r570",
      "r573",
      "r704",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r788",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r856",
      "r1002",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1136",
      "r1137",
      "r1138",
      "r1139"
     ]
    },
    "us-gaap_FinancialInstrumentPerformanceStatusAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentPerformanceStatusAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "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": [
      "r1147"
     ]
    },
    "us-gaap_FinancialInstrumentPerformanceStatusDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentPerformanceStatusDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "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/20231231/taxonomy/role/DisclosureFinancialInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments",
        "label": "Financial Instruments Disclosure [Text Block]",
        "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/20231231",
     "localname": "FinancingReceivableAcquiredWithDeterioratedCreditQuality",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The balance of financing receivables that were acquired with deteriorated credit quality.",
        "label": "cofs_FinancingReceivableAcquiredWithDeterioratedCreditQuality",
        "terseLabel": "Acquired with deteriorated credit quality"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableAllowanceForCreditLossLoanCoverageRatio": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableAllowanceForCreditLossLoanCoverageRatio",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing receivable allowance for credit loss loan coverage ratio",
        "documentation": "Reflects the percentage derived from dividing allowance for loans losses by total loans.",
        "label": "cofs_FinancingReceivableAllowanceForCreditLossLoanCoverageRatio"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLosses",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for credit loss",
        "periodEndLabel": "Financing Receivable, Allowance for Credit Loss, Ending Balance",
        "periodStartLabel": "Financing Receivable, Allowance for Credit Loss, Beginning Balance",
        "label": "Financing Receivable, 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": [
      "r16",
      "r289",
      "r291",
      "r293",
      "r314",
      "r483",
      "r487",
      "r491",
      "r1289"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collectively evaluated loan reserves for impairment",
        "label": "Financing Receivable, Allowance for Credit Losses, Collectively Evaluated for Impairment",
        "documentation": "The valuation allowance for financing receivables that are expected to be uncollectible that were collectively evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individually evaluated loan reserves for impairment",
        "label": "Financing Receivable, Allowance for Credit Losses, Individually Evaluated for Impairment",
        "documentation": "Amount of valuation allowance for financing receivables that are expected to be uncollectible that were individually evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesRecovery": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesRecovery",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r19",
      "r490",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableAllowanceForCreditLossesWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableAllowanceForCreditLossesWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Financing Receivable, Allowance for Credit Loss, Writeoff, Total",
        "label": "Financing Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Charge-offs",
        "documentation": "Amount of writeoff of financing receivable, charged against allowance for credit loss."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r489",
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableCollectivelyEvaluatedForImpairment",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Collectively evaluated loans for impairment",
        "label": "Financing Receivable, Collectively Evaluated for Impairment",
        "documentation": "The balance of financing receivables that were collectively evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r413",
      "r994"
     ]
    },
    "us-gaap_FinancingReceivableCreditQualityIndicatorsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableCreditQualityIndicatorsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Information Regarding Credit Exposure",
        "label": "Financing Receivable Credit Quality Indicators [Table Text Block]",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "cofs_FinancingReceivableIncreaseDueToMigrationOfPurchasedLoansPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableIncreaseDueToMigrationOfPurchasedLoansPercentage",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing receivable increase due to migration of purchased loans percentage",
        "documentation": "Reflects the percentage increase in allowance for loan losses due to migration of purchased loans.",
        "label": "cofs_FinancingReceivableIncreaseDueToMigrationOfPurchasedLoansPercentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableIndividuallyEvaluatedForImpairment",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individually evaluated loans for impairment",
        "label": "Financing Receivable, Individually Evaluated for Impairment",
        "documentation": "The balance of financing receivables that were individually evaluated for impairment."
       }
      }
     },
     "auth_ref": [
      "r414",
      "r994"
     ]
    },
    "cofs_FinancingReceivableInterestRateReduction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableInterestRateReduction",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest rate reduction",
        "label": "Financing Receivable Interest Rate Reduction",
        "documentation": "Financing receivable interest rate reduction."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivableModificationsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable, Troubled Debt Restructuring [Line Items]",
        "verboseLabel": "Loans and Allowance for Loan Losses [Line Items]",
        "label": "Financing Receivable, Modified [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": [
      "r417",
      "r418",
      "r419",
      "r420",
      "r993"
     ]
    },
    "us-gaap_FinancingReceivableModificationsNumberOfContracts2": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsNumberOfContracts2",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Financing Receivable, Modifications, Number of Contracts",
        "terseLabel": "Number of Loans",
        "label": "Financing Receivable, Modifications, Number of Contracts",
        "documentation": "Number of financing receivables that have been modified by troubled debt restructurings."
       }
      }
     },
     "auth_ref": [
      "r1098"
     ]
    },
    "us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsPostModificationRecordedInvestment2",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Post-Modification Outstanding Recorded Investment",
        "label": "Financing Receivable, Modified in Period, Amount",
        "documentation": "Amortized cost of financing receivable modified during period for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r419",
      "r993",
      "r1098"
     ]
    },
    "us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsPreModificationRecordedInvestment2",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre-Modification Outstanding Recorded Investment",
        "label": "Financing Receivable, Troubled Debt Restructuring, Premodification",
        "documentation": "Amount, before troubled debt restructuring, of financing receivable to be modified."
       }
      }
     },
     "auth_ref": [
      "r1098"
     ]
    },
    "us-gaap_FinancingReceivableModificationsRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableModificationsRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recorded investment",
        "label": "Financing Receivable, Modified, Accumulated",
        "documentation": "Accumulated amortized cost of financing receivable modified for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r194",
      "r1098",
      "r1100"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualInterestIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualInterestIncome",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest income recognized during the period on nonaccrual loans",
        "label": "Financing Receivable, Nonaccrual, Interest Income",
        "documentation": "Amount of interest income on financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r495"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualNoAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualNoAllowance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonaccrual loans with no ACL",
        "label": "Financing Receivable, Nonaccrual, No Allowance",
        "documentation": "Amortized cost of financing receivable on nonaccrual status with no allowance for credit loss. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r497"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualStatusLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualStatusLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Financing Receivable, Nonaccrual [Line Items]",
        "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": [
      "r493"
     ]
    },
    "us-gaap_FinancingReceivableNonaccrualTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableNonaccrualTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Nonaccrual [Table]",
        "documentation": "Disclosure of information about financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r493"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedFiveOrMoreYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedFiveOrMoreYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prior",
        "label": "Financing Receivable, Originated, More than Five Years before Current Fiscal Year",
        "documentation": "Amortized cost of financing receivable originated more than five years prior to current fiscal year. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedFourYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedFourYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2019",
        "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": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedInCurrentFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedInCurrentFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Term Extension",
        "terseLabel": "2023",
        "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": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedInFiscalYearBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedInFiscalYearBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2022",
        "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": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedThreeYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedThreeYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2020",
        "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": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableOriginatedTwoYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableOriginatedTwoYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2021",
        "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": [
      "r504",
      "r1000"
     ]
    },
    "cofs_FinancingReceivableOriginatedWriteoffsFiveOrMoreYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsFiveOrMoreYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Prior",
        "label": "Financing Receivable Originated Writeoffs Five or More Years Before Latest Fiscal Year",
        "documentation": "Financing receivable originated writeoffs five or more years before latest fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsFourYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsFourYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, 2019",
        "label": "Financing Receivable Originated Writeoffs Four Years Before Latest Fiscal Year",
        "documentation": "Financing receivable originated writeoffs four years before latest fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsInCurrentFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsInCurrentFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, 2023",
        "label": "Financing Receivable Originated Writeoffs in Current Fiscal Year",
        "documentation": "Financing receivable originated writeoffs in current fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsInFiscalYearBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsInFiscalYearBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, 2022",
        "label": "Financing Receivable Originated Writeoffs in Fiscal Year Before Latest Fiscal Year",
        "documentation": "Financing receivable originated writeoffs in fiscal year before latest fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsThreeYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsThreeYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, 2020",
        "label": "Financing Receivable Originated Writeoffs Three Years Before Latest Fiscal Year",
        "documentation": "Financing receivable originated writeoffs three years before latest fiscal year."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableOriginatedWriteoffsTwoYearsBeforeLatestFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableOriginatedWriteoffsTwoYearsBeforeLatestFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriyeoffOfFinancingReceivableRevolving",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, 2021",
        "label": "Financing Receivable Originated Writeoffs Two Years Before Latest Fiscal Year",
        "documentation": "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/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable Portfolio Segment [Axis]",
        "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": [
      "r287",
      "r288",
      "r292",
      "r293",
      "r485",
      "r486",
      "r995",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1058",
      "r1059",
      "r1060"
     ]
    },
    "us-gaap_FinancingReceivablePortfolioSegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablePortfolioSegmentDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Receivable Portfolio Segment [Domain]",
        "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": [
      "r287",
      "r288",
      "r292",
      "r293",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1058",
      "r1059",
      "r1060"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestment90DaysPastDueAndStillAccruing",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r278",
      "r496",
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Financing Receivable [Axis]",
        "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": [
      "r80",
      "r82",
      "r287",
      "r288",
      "r292",
      "r293",
      "r416",
      "r419",
      "r420",
      "r421",
      "r423",
      "r492",
      "r493",
      "r502",
      "r993",
      "r996",
      "r997",
      "r1000",
      "r1001",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1058",
      "r1059",
      "r1060"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentClassOfFinancingReceivableDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentClassOfFinancingReceivableDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Financing Receivable [Domain]",
        "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": [
      "r287",
      "r288",
      "r292",
      "r293",
      "r419",
      "r420",
      "r421",
      "r423",
      "r993",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1058",
      "r1059",
      "r1060"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentNonaccrualStatus",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total nonaccrual loans",
        "label": "Financing Receivable, Nonaccrual",
        "documentation": "Amortized cost of financing receivable on nonaccrual status. Excludes net investment in lease."
       }
      }
     },
     "auth_ref": [
      "r81",
      "r290",
      "r291",
      "r494"
     ]
    },
    "us-gaap_FinancingReceivableRecordedInvestmentPastDueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRecordedInvestmentPastDueLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1001",
      "r1146"
     ]
    },
    "us-gaap_FinancingReceivableRevolving": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRevolving",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Loans",
        "label": "Financing Receivable, Revolving",
        "documentation": "Amortized cost of financing receivable that can be withdrawn, repaid, and redrawn."
       }
      }
     },
     "auth_ref": [
      "r504",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableRevolvingConvertedToTermLoan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableRevolvingConvertedToTermLoan",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "us-gaap_NotesReceivableGross",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Term Loans Total",
        "label": "Financing Receivable, Revolving, Converted to Term Loan",
        "documentation": "Amortized cost of revolving financing receivable converted to term loan."
       }
      }
     },
     "auth_ref": [
      "r505",
      "r1000"
     ]
    },
    "us-gaap_FinancingReceivableThresholdPeriodPastDue": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivableThresholdPeriodPastDue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Threshold Period Past Due",
        "terseLabel": "Financing Receivable, Threshold Period Past Due (Day)",
        "documentation": "Threshold period for when financing receivable is considered past due, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Excludes threshold period past due to write off as uncollectible."
       }
      }
     },
     "auth_ref": [
      "r492"
     ]
    },
    "cofs_FinancingReceivableTroubledLoanModificationAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableTroubledLoanModificationAmortizedCost",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortized Cost Basis",
        "label": "Financing Receivable Troubled Loan Modification Amortized Cost",
        "documentation": "Financing receivable troubled loan modification amortized cost."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_FinancingReceivableWriteoffRevolvingConvertedToTermLoan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FinancingReceivableWriteoffRevolvingConvertedToTermLoan",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriteoffOfNotesReceivableGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current year-to-date gross write-offs, Revolving Loans",
        "label": "Financing Receivable Writeoff Revolving Converted to Term Loan",
        "documentation": "Financing receivable writeoff revolving converted to term loan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FinancingReceivables30To59DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables30To59DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivables60To89DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivables60To89DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "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": [
      "r279",
      "r492",
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivablesPeriodPastDueDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesPeriodPastDueDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfTroubleDebtRestructuringsTdrsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "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": [
      "r279",
      "r492",
      "r1001"
     ]
    },
    "us-gaap_FinancingReceivablesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancingReceivablesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLosses"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans and Allowance for Credit Losses",
        "label": "Financing Receivables [Text Block]",
        "documentation": "The entire disclosure for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r420",
      "r422",
      "r424",
      "r993"
     ]
    },
    "us-gaap_FiniteLivedCoreDepositsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedCoreDepositsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Core deposit intangible (Note 6)",
        "label": "Finite-Lived Core Deposits, Gross",
        "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": [
      "r92"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortized over the estimated life",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r308",
      "r536"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "terseLabel": "Thereafter",
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r198"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Estimated Amortization Expense",
        "label": "Finite-Lived Intangible Assets Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r198"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r198"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r198"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r198"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r535",
      "r536",
      "r537",
      "r810",
      "r814"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Carrying Amount",
        "totalLabel": "Finite-Lived Intangible Assets, Gross, Total",
        "label": "Finite-Lived Intangible Assets, Gross",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r814"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r92"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance",
        "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance",
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Total",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r810"
     ]
    },
    "cofs_FourSofrCapAgreementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "FourSofrCapAgreementsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Four SOFR cap Agreements.",
        "label": "Four SOFR Cap Agreements [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture and Fixtures [Member]",
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnDerivativeInstrumentsNetPretax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnDerivativeInstrumentsNetPretax",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gain (Loss) on Derivative Instruments, Net, Pretax, Total",
        "label": "Gain (Loss) on Derivative Instruments, Net, Pretax",
        "verboseLabel": "The effects of fair value and cash flow hedging:",
        "documentation": "Aggregate net gain (loss) on all derivative instruments recognized in earnings during the period, before tax effects."
       }
      }
     },
     "auth_ref": [
      "r123"
     ]
    },
    "us-gaap_GainLossOnInvestmentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnInvestmentsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Unrealized Gains and Losses on Equity Securities",
        "label": "Gain (Loss) on Securities [Table Text Block]",
        "documentation": "Tabular disclosure of realized and unrealized gain (loss) on investment in security."
       }
      }
     },
     "auth_ref": [
      "r1075",
      "r1076"
     ]
    },
    "us-gaap_GainLossOnSaleOfLoansAndLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfLoansAndLeases",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityInSecondaryMarketLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net gains on sales of loans held for sale",
        "totalLabel": "Gain (Loss) on Sale of Loans and Leases, Total",
        "label": "Gain (Loss) on Sale of Loans and Leases",
        "negatedLabel": "Gains on sales of loans and capitalized servicing rights",
        "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": [
      "r1084"
     ]
    },
    "us-gaap_GainLossOnSaleOfOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net (losses) gains on sales and write-downs of other assets (Note 7)",
        "label": "Gain (Loss) on Disposition of Other Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of other assets."
       }
      }
     },
     "auth_ref": [
      "r1084"
     ]
    },
    "us-gaap_GainLossOnSalesOfLoansNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSalesOfLoansNet",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gains on sales of loans (Note 4)",
        "totalLabel": "Gain (Loss) on Sales of Loans, Net, Total",
        "label": "Gain (Loss) on Sales of Loans, Net",
        "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": [
      "r10",
      "r232"
     ]
    },
    "us-gaap_GainsLossesOnSalesOfOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainsLossesOnSalesOfOtherRealEstate",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gains on sales",
        "label": "Gains (Losses) on Sales of Other Real Estate",
        "negatedLabel": "(Gains) on sales of other real estate owned",
        "documentation": "The net gain (loss) resulting from sales and other disposals of other real estate owned, increases (decreases) in the valuation allowance for foreclosed real estate, and write-downs of other real estate owned after acquisition or physical possession."
       }
      }
     },
     "auth_ref": [
      "r235"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Goodwill (Note 6)",
        "totalLabel": "Goodwill, Total",
        "label": "Goodwill",
        "periodEndLabel": "Balance, end of year",
        "periodStartLabel": "Balance, beginning of year",
        "terseLabel": "Goodwill, Ending Balance",
        "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": [
      "r307",
      "r521",
      "r815",
      "r1003",
      "r1020",
      "r1150",
      "r1157"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Acquired Intangible Assets",
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill and intangible assets."
       }
      }
     },
     "auth_ref": [
      "r195"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Intangible Assets",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "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": [
      "r520",
      "r533",
      "r1003"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Core Deposit Intangible",
        "label": "Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]",
        "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": [
      "r14"
     ]
    },
    "us-gaap_GoodwillImpairmentLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillImpairmentLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment loss",
        "label": "Goodwill, Impairment Loss",
        "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r522",
      "r528",
      "r533",
      "r1003"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [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": [
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r1003"
     ]
    },
    "us-gaap_GoodwillPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill, purchase accounting adjustments",
        "terseLabel": "Goodwill adjustment from merger",
        "verboseLabel": "Goodwill adjustment from merger with Community Shores Bank Corporation",
        "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r1156"
     ]
    },
    "us-gaap_HedgedAssetDiscontinuedFairValueHedgeCumulativeIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgedAssetDiscontinuedFairValueHedgeCumulativeIncreaseDecrease",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cumulative amount of discontinued cash flow hedge",
        "label": "Hedged Asset, Discontinued Fair Value Hedge, Cumulative Increase (Decrease)",
        "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": [
      "r689",
      "r1019"
     ]
    },
    "us-gaap_HedgingDesignationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Designation [Axis]",
        "documentation": "Information by designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r688"
     ]
    },
    "us-gaap_HedgingDesignationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Designation [Domain]",
        "documentation": "Designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_HedgingRelationshipDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingRelationshipDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Hedging Relationship [Domain]",
        "documentation": "Nature or intent of a hedge."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_HeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Amortized cost, held to maturity",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, before Allowance for Credit Loss",
        "documentation": "Amount, before allowance for credit loss, of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r448",
      "r492",
      "r1144"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingGain",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecurities",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross unrealized gains, held to maturity",
        "label": "Debt Securities, Held-to-Maturity, Accumulated Unrecognized Gain",
        "documentation": "Amount of accumulated unrecognized gain on investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r248",
      "r458"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesAccumulatedUnrecognizedHoldingLoss",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails"
     ],
     "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": [
      "r249",
      "r459"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r257",
      "r259"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrealized losses",
        "label": "Debt Securities, Held-to-Maturity, Unrealized Loss Position, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at amortized cost (held-to-maturity), in unrealized loss position."
       }
      }
     },
     "auth_ref": [
      "r257"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value",
        "label": "Debt Securities, Held-to-Maturity, Unrealized Loss Position, Fair Value",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), in unrealized loss position."
       }
      }
     },
     "auth_ref": [
      "r256"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r257",
      "r259"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r259"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r259"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesAfterFiveThroughTenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after five years through ten years, fair value",
        "label": "Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 5 Through 10",
        "documentation": "Fair value 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 fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r253",
      "r265",
      "r463",
      "r827"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after one year through five years, fair value",
        "label": "Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year One Through Five",
        "documentation": "Fair value 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 fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r252",
      "r264",
      "r462",
      "r826"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesAfterTenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesAfterTenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after ten years, fair value",
        "label": "Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, after Year 10",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date, maturing after tenth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r254",
      "r266",
      "r464",
      "r828"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Held to maturity, total, amortized cost",
        "terseLabel": "Held to maturity, total, amortized cost",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date",
        "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": [
      "r1123",
      "r1291"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Held to maturity, total, fair value",
        "terseLabel": "Held to maturity, total, fair value",
        "label": "Debt Securities, Held-to-Maturity, Maturity, Allocated and Single Maturity Date, Fair Value",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity), with single maturity date and allocated without single maturity date."
       }
      }
     },
     "auth_ref": [
      "r250",
      "r262",
      "r1131",
      "r1296"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateFairValue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due within one year, fair value",
        "label": "Debt Securities, Held-to-Maturity, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "documentation": "Fair value 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 fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r251",
      "r263",
      "r461",
      "r825"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesFairValue",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecurities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair value, held to maturity",
        "totalLabel": "Debt Securities, Held-to-Maturity, Fair Value, Total",
        "terseLabel": "Debt Securities, Held-to-Maturity, Fair Value, Total",
        "documentation": "Fair value of investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r247",
      "r457",
      "r816",
      "r842"
     ]
    },
    "us-gaap_HeldToMaturitySecuritiesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldToMaturitySecuritiesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Gross Unrealized Gains and Losses on Investment Securities Held to Maturity",
        "label": "Debt Securities, Held-to-Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of information about investment in debt security measured at amortized cost (held-to-maturity)."
       }
      }
     },
     "auth_ref": [
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132",
      "r1133",
      "r1134",
      "r1135"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesNextRollingTwelveMonthsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesNextRollingTwelveMonthsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due within one year, amortized cost",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling within One 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": [
      "r1124",
      "r1292"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingAfterTenYearsAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingAfterTenYearsAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after ten years, amortized cost",
        "label": "Debt Securities, Held-to-Maturity, Amortized Cost, after Allowance for Credit Loss, Maturity, Allocated and Single Maturity Date, Rolling after 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 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": [
      "r1127",
      "r1295"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingYearSixThroughTenAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingYearSixThroughTenAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after five years through ten years, amortized cost",
        "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",
        "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": [
      "r1126",
      "r1294"
     ]
    },
    "us-gaap_HeldtomaturitySecuritiesDebtMaturitiesRollingYearTwoThroughFiveAmortizedCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HeldtomaturitySecuritiesDebtMaturitiesRollingYearTwoThroughFiveAmortizedCost",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails": {
       "parentTag": "us-gaap_HeldToMaturitySecuritiesDebtMaturitiesSingleMaturityDateAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Held to maturity, due after one year through five years, amortized cost",
        "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",
        "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": [
      "r1125",
      "r1293"
     ]
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r1037",
      "r1038",
      "r1039"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average Recorded Investment",
        "label": "Impaired Financing Receivable, 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": [
      "r74",
      "r76"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Income Recognized",
        "label": "Impaired Financing Receivable, Interest Income, Accrual Method",
        "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": [
      "r75"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recorded Investment",
        "label": "Impaired Financing Receivable, 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": [
      "r69"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableRelatedAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableRelatedAllowance",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Allowance",
        "label": "Impaired Financing Receivable, Related Allowance",
        "documentation": "Amount of allowance for credit losses related to recorded investment."
       }
      }
     },
     "auth_ref": [
      "r71"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unpaid Principal Balance",
        "label": "Impaired Financing Receivable, 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": [
      "r72"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average Recorded Investment, With no related allowance recorded",
        "label": "Impaired Financing Receivable, with No Related Allowance, Average Recorded Investment",
        "documentation": "Amount of average investment of impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r76"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Income Recognized, With no related allowance recorded",
        "label": "Impaired Financing Receivable, with No Related Allowance, Interest Income, Accrual Method",
        "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": [
      "r75"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recorded Investment, With no related allowance recorded",
        "label": "Impaired Financing Receivable, with No Related Allowance, Recorded Investment",
        "documentation": "Amount of investment in impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unpaid Principal Balance, With no related allowance recorded",
        "label": "Impaired Financing Receivable, with No Related Allowance, Unpaid Principal Balance",
        "documentation": "Amount of unpaid principal balance of impaired financing receivables for which there is no related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r72"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Average Recorded Investment, With an allowance recorded",
        "label": "Impaired Financing Receivable, with Related Allowance, Average Recorded Investment",
        "documentation": "Amount of average investment of impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r76"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeAccrualMethod",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Income Recognized, With an allowance recorded",
        "label": "Impaired Financing Receivable, with Related Allowance, Interest Income, Accrual Method",
        "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": [
      "r75"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recorded Investment, With an allowance recorded",
        "label": "Impaired Financing Receivable, with Related Allowance, Recorded Investment",
        "documentation": "Amount of investment in impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unpaid Principal Balance, With an allowance recorded",
        "label": "Impaired Financing Receivable, with Related Allowance, Unpaid Principal Balance",
        "documentation": "Unpaid principal balance of impaired financing receivables for which there is a related allowance for credit losses."
       }
      }
     },
     "auth_ref": [
      "r72"
     ]
    },
    "us-gaap_ImpairedFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ImpairedFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Loans for Impairment and Interest Recognized on Impaired Loans",
        "label": "Impaired Financing Receivables [Table Text Block]",
        "documentation": "Tabular disclosure of impaired financing receivables."
       }
      }
     },
     "auth_ref": [
      "r70"
     ]
    },
    "cofs_ImpairedLoansFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ImpairedLoansFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impaired Loans",
        "documentation": "Represents amount of fair value disclosure of impaired loans.",
        "label": "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/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income before income tax",
        "terseLabel": "Income before income tax and equity in undistributed net income of subsidiary",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "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",
      "r179",
      "r224",
      "r396",
      "r405",
      "r407",
      "r409",
      "r822",
      "r853",
      "r991"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income (Loss) from Continuing Operations, Net of Tax, Including Portion Attributable to Noncontrolling Interest",
        "totalLabel": "Income before equity in undistributed net income of subsidiary",
        "documentation": "Amount after tax of income (loss) from continuing operations including portion attributable to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r349",
      "r361",
      "r396",
      "r405",
      "r407",
      "r409",
      "r468",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r715",
      "r736",
      "r853",
      "r991",
      "r1162"
     ]
    },
    "us-gaap_IncomeLossFromSubsidiariesNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromSubsidiariesNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income (Loss) from Subsidiaries, Net of Tax, Total",
        "label": "Income (Loss) from Subsidiaries, Net of Tax",
        "negatedTerseLabel": "Equity in undistributed net income of subsidiary",
        "documentation": "Amount after tax of income (loss) of subsidiary attributable to the parent entity."
       }
      }
     },
     "auth_ref": []
    },
    "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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Axis]",
        "documentation": "Information by location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r538",
      "r540",
      "r932"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location [Domain]",
        "documentation": "Location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r540",
      "r932"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority [Axis]",
        "documentation": "Information by tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority [Domain]",
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority, Name [Axis]",
        "documentation": "Information by name of taxing authority."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority, Name [Domain]",
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_IncomeTaxDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "IncomeTaxDisclosureLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Line Items]",
        "documentation": "Income tax disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_IncomeTaxDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "IncomeTaxDisclosureTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Table]",
        "documentation": "Income tax disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxes1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information."
       }
      }
     },
     "auth_ref": [
      "r350",
      "r651",
      "r656",
      "r657",
      "r661",
      "r668",
      "r673",
      "r674",
      "r675",
      "r881"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax expense",
        "label": "Income Tax Expense (Benefit)",
        "totalLabel": "Income tax expense",
        "negatedTerseLabel": "Income tax (expense)/benefit",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r282",
      "r371",
      "r372",
      "r398",
      "r654",
      "r669",
      "r862"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r329",
      "r652",
      "r653",
      "r657",
      "r658",
      "r660",
      "r662",
      "r877"
     ]
    },
    "us-gaap_IncomeTaxReconciliationDeductionsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationDeductionsOther",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Deduction, Other, Amount",
        "negatedLabel": "Tax exempt earnings on bank-owned life insurance",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other deductions."
       }
      }
     },
     "auth_ref": [
      "r1257"
     ]
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax computed at statutory federal rate of 21%",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r655"
     ]
    },
    "us-gaap_IncomeTaxReconciliationOtherAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationOtherAdjustments",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other items",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Amount",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments."
       }
      }
     },
     "auth_ref": [
      "r1257"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxCredits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationTaxCredits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Effective Income Tax Rate Reconciliation, Tax Credit, Amount, Total",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Amount",
        "negatedLabel": "Tax credits",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits."
       }
      }
     },
     "auth_ref": [
      "r1257"
     ]
    },
    "us-gaap_IncomeTaxReconciliationTaxExemptIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxReconciliationTaxExemptIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails2": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesReconciliationOfEffectiveIncomeTaxRateDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Income Tax Rate Reconciliation, Tax Exempt Income, Amount",
        "negatedLabel": "Tax exempt interest income",
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to income (loss) exempt from income taxes."
       }
      }
     },
     "auth_ref": [
      "r1257"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for income taxes",
        "totalLabel": "Income Taxes Paid, Net, Total",
        "label": "Income Taxes Paid, Net",
        "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": [
      "r58"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInDeposits",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net change in deposits",
        "totalLabel": "Increase (Decrease) in Deposits, Total",
        "label": "Increase (Decrease) in Deposits",
        "documentation": "The net cash inflow or outflow for the increase (decrease) in the beginning and end of period deposits balances."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r159"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Increase (Decrease) in Other Operating Assets, Total",
        "label": "Increase (Decrease) in Other Operating Assets",
        "negatedLabel": "Other assets",
        "negatedTerseLabel": "Changes in other assets",
        "documentation": "Amount of increase (decrease) in operating assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherOperatingLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other liabilities",
        "totalLabel": "Increase (Decrease) in Other Operating Liabilities, Total",
        "label": "Increase (Decrease) in Other Operating Liabilities",
        "terseLabel": "Changes in other liabilities",
        "documentation": "Amount of increase (decrease) in operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r9"
     ]
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plus dilutive stock options and restricted stock units (in shares)",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "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": [
      "r379",
      "r380",
      "r381",
      "r390",
      "r607"
     ]
    },
    "us-gaap_InformationTechnologyAndDataProcessing": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InformationTechnologyAndDataProcessing",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Data processing",
        "label": "Information Technology and Data Processing",
        "documentation": "The amount of expenses incurred in the period for information technology and data processing products and services."
       }
      }
     },
     "auth_ref": [
      "r182"
     ]
    },
    "us-gaap_InsuranceCommissionsAndFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InsuranceCommissionsAndFees",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance and investment commissions",
        "label": "Insurance Commissions and Fees",
        "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": [
      "r231"
     ]
    },
    "cofs_InterestAndDividendIncomeFromSubsidiaries": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "InterestAndDividendIncomeFromSubsidiaries",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of interest and dividend income from subsidiaries during the period.",
        "label": "Interest and dividends from ChoiceOne Bank"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndDividendIncomeOperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeOperating",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest and Dividend Income, Operating",
        "totalLabel": "Total interest income",
        "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": [
      "r227",
      "r1309"
     ]
    },
    "us-gaap_InterestAndDividendIncomeOperatingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeOperatingAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest income",
        "label": "Interest and Dividend Income, Operating [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndDividendIncomeSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeSecurities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and dividends from other securities",
        "totalLabel": "Interest and Dividend Income, Securities, Operating, Total",
        "label": "Interest and Dividend Income, Securities, Operating",
        "documentation": "Amount of operating dividend and interest income, including amortization and accretion of premiums and discounts, on securities."
       }
      }
     },
     "auth_ref": [
      "r1303",
      "r1308"
     ]
    },
    "us-gaap_InterestAndDividendIncomeSecuritiesByTaxableStatusAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndDividendIncomeSecuritiesByTaxableStatusAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities:",
        "label": "Interest and Dividend Income, Securities, by Taxable Status [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestAndFeeIncomeLoansAndLeases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestAndFeeIncomeLoansAndLeases",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Loans, including fees",
        "totalLabel": "Interest and Fee Income, Loans and Leases, Total",
        "label": "Interest and Fee Income, Loans and Leases",
        "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": [
      "r226"
     ]
    },
    "cofs_InterestBearingAndNoninterestBearingDepositBrokered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "InterestBearingAndNoninterestBearingDepositBrokered",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest-bearing and noninterest-bearing deposit, brokered",
        "documentation": "Amount of interest-bearing and noninterest-bearing third-party deposits placed by or through the assistance of a deposit broker, also known as brokered deposit liabilities.",
        "label": "cofs_InterestBearingAndNoninterestBearingDepositBrokered"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestBearingDepositLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDepositLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deposits - interest-bearing (Note 9)",
        "terseLabel": "Interest-bearing deposits",
        "totalLabel": "Interest-Bearing Deposit Liabilities, Total",
        "label": "Interest-Bearing Deposit Liabilities",
        "documentation": "The aggregate of all domestic and foreign interest-bearing deposit liabilities."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_InterestBearingDepositsInBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDepositsInBanks",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Time deposits in other financial institutions",
        "label": "Interest-Bearing Deposits in Banks and 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": [
      "r151",
      "r156"
     ]
    },
    "us-gaap_InterestBearingDomesticDepositBrokered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDomesticDepositBrokered",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Brokered certificates of deposit",
        "label": "Interest-Bearing Domestic Deposit, Brokered",
        "documentation": "Amount of interest-bearing domestic third-party deposits placed by or through the assistance of a deposit broker, also known as brokered deposit liabilities."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_InterestBearingDomesticDepositCertificatesOfDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDomesticDepositCertificatesOfDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local certificates of deposit",
        "label": "Interest-Bearing Domestic Deposit, Certificates of Deposits",
        "documentation": "Amount of interest-bearing domestic certificate of deposit liabilities."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_InterestBearingDomesticDepositDemand": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestBearingDomesticDepositDemand",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest-bearing demand deposits",
        "label": "Interest-Bearing Domestic Deposit, Demand",
        "documentation": "Amount of money in interest-bearing domestic accounts that entitle the depositor to withdraw funds at any time without prior notice, also known as demand deposits."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense",
        "totalLabel": "Total interest expense",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r146",
      "r241",
      "r333",
      "r397",
      "r751",
      "r933",
      "r1030",
      "r1301"
     ]
    },
    "us-gaap_InterestExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest expense",
        "label": "Interest Expense [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestExpenseBorrowings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseBorrowings",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_InterestIncomeExpenseNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Interest Expense, Borrowings, Total",
        "label": "Interest Expense, Borrowings",
        "terseLabel": "Borrowings",
        "documentation": "Aggregate amount of interest expense on all borrowings."
       }
      }
     },
     "auth_ref": [
      "r240"
     ]
    },
    "us-gaap_InterestExpenseDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseDeposits",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deposits",
        "totalLabel": "Interest Expense, Deposits, Total",
        "label": "Interest Expense, Deposits",
        "documentation": "Aggregate amount of interest expense on all deposits."
       }
      }
     },
     "auth_ref": [
      "r239"
     ]
    },
    "us-gaap_InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesLongTerm": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesLongTerm",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense, Federal Home Loan Bank and Federal Reserve Bank Advances, Long-Term",
        "terseLabel": "Advances from Federal Home Loan Bank",
        "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_InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesShortTerm": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseFederalHomeLoanBankAndFederalReserveBankAdvancesShortTerm",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest expense, federal home loan bank and federal reserve bank advances, short-term",
        "label": "Interest Expense, Federal Home Loan Bank and Federal Reserve Bank Advances, Short-Term",
        "documentation": "Interest expense incurred during the reporting period on short-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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense [Member]",
        "documentation": "Primary financial statement caption encompassing interest expense."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_InterestExpenseOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestExpenseOther",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Expense, Other",
        "terseLabel": "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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net interest income after provision for credit losses",
        "label": "Interest Income (Expense), after Provision for Loan Loss",
        "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": [
      "r230"
     ]
    },
    "us-gaap_InterestIncomeExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeExpenseNet",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestIncomeExpenseAfterProvisionForLoanLoss",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income (Expense), Net",
        "totalLabel": "Net interest income",
        "documentation": "The net amount of operating interest income (expense)."
       }
      }
     },
     "auth_ref": [
      "r228"
     ]
    },
    "us-gaap_InterestIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax exempt",
        "label": "Interest Income, Securities, Operating, 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": [
      "r237",
      "r284",
      "r285"
     ]
    },
    "us-gaap_InterestIncomeSecuritiesTaxable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestIncomeSecuritiesTaxable",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxable",
        "label": "Interest Income, Securities, Operating, 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": [
      "r237",
      "r284",
      "r285"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for interest",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "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": [
      "r342",
      "r345",
      "r346"
     ]
    },
    "cofs_InterestRateCommitmentsToExtendCredit": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "InterestRateCommitmentsToExtendCredit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The interest rate for commitments to extend credit.",
        "label": "cofs_InterestRateCommitmentsToExtendCredit",
        "terseLabel": "Interest Rate Commitments to Extend Credit"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_InterestRateContractHedgedItemsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "InterestRateContractHedgedItemsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest Rate Contract, Hedged Items.",
        "label": "Interest Rate Contract, Hedged Items [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestRateContractMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestRateContractMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesLocationAndAmountOfGainLossInIncomeOnFairValueAndCashFlowHedgingRelationshipsDetailsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfDerivativesInstrumentsInBalanceSheetLocationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r981",
      "r984",
      "r1010"
     ]
    },
    "cofs_InterestRateLockCommitmentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "InterestRateLockCommitmentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest rate lock commitments",
        "documentation": "Represents fair value portion of interest rate lock commitments.",
        "label": "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/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Internal Credit Assessment [Axis]",
        "documentation": "Information by entity-defined rating."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r690",
      "r999",
      "r1000",
      "r1147"
     ]
    },
    "us-gaap_InternalCreditAssessmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalCreditAssessmentDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Internal Credit Assessment [Domain]",
        "documentation": "Entity defined credit risk rating."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalRevenueServiceIRSMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Internal Revenue Service (IRS) [Member]",
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Investments Classified by Contractual Maturity Date",
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsDebtAndEquitySecuritiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsDebtAndEquitySecuritiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Investments, Debt and Equity Securities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Investments in and Advance to Affiliates, Subsidiaries, Associates, and Joint Ventures, Total",
        "label": "Investments in and Advance to Affiliates, Subsidiaries, Associates, and Joint Ventures",
        "terseLabel": "Investment in subsidiaries",
        "documentation": "Amount of investment in equity method investee and investment in and advance to affiliate."
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "us-gaap_InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsInDebtAndMarketableEquitySecuritiesAndCertainTradingAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecurities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Securities",
        "label": "Investments in Debt and Marketable Equity Securities (and Certain Trading Assets) Disclosure [Text Block]",
        "documentation": "The entire disclosure for investments in certain debt and equity securities."
       }
      }
     },
     "auth_ref": [
      "r213",
      "r242",
      "r245",
      "r286",
      "r430",
      "r434",
      "r729",
      "r730"
     ]
    },
    "us-gaap_LaborAndRelatedExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LaborAndRelatedExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Salaries and benefits (Note 13 and 14)",
        "terseLabel": "Salaries and benefits",
        "label": "Labor and Related Expense",
        "documentation": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit."
       }
      }
     },
     "auth_ref": [
      "r1077"
     ]
    },
    "us-gaap_LandAndLandImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LandAndLandImprovementsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Land and Land Improvements [Member]",
        "documentation": "Real estate held and assets that are an addition or improvement to real estate held."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LandImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LandImprovementsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Land Improvements [Member]",
        "documentation": "Additions or improvements to real estate held."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LatestTaxYearMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LatestTaxYearMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Latest Tax Year",
        "label": "Latest Tax Year [Member]",
        "documentation": "Latest identified tax year."
       }
      }
     },
     "auth_ref": [
      "r1258"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Legal Entity:",
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r759"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rent Commitments",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r1276"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total undiscounted cash flows",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less discount",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities",
        "totalLabel": "Total 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": [
      "r39",
      "r349",
      "r468",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r681",
      "r682",
      "r683",
      "r736",
      "r905",
      "r990",
      "r1032",
      "r1162",
      "r1278",
      "r1279"
     ]
    },
    "us-gaap_LiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and shareholders\u2019 equity",
        "verboseLabel": "Total liabilities and shareholders\u2019 equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r177",
      "r221",
      "r849",
      "r1020",
      "r1086",
      "r1141",
      "r1272"
     ]
    },
    "cofs_LiabilityForExpectedCreditLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "LiabilityForExpectedCreditLosses",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liability for expected credit losses",
        "documentation": "Amount of expected credit losses accrued for.",
        "label": "cofs_LiabilityForExpectedCreditLosses"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_LiborMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "LiborMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "London Interbank Offered Rate (LIBOR) [Member]",
        "label": "LIBOR [Member]",
        "documentation": "LIBOR."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term line of credit",
        "totalLabel": "Long-Term Line of Credit, Total",
        "label": "Long-Term Line of Credit",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r220",
      "r1297"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Line of credit facility, maximum borrowing capacity",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r38"
     ]
    },
    "us-gaap_LineOfCreditMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LineOfCreditMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit [Member]",
        "documentation": "A contractual arrangement with a lender under which borrowings can be made up to a specific amount at any point in time, and under which borrowings outstanding may be either short-term or long-term, depending upon the particulars."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoanCommitmentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoanCommitmentsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loan Commitments and Related Financial Instruments",
        "label": "Loan Commitments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for loan commitments accounted for as derivatives, including the methods and assumptions used to estimate fair value and any associated hedging strategies."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r210"
     ]
    },
    "us-gaap_LoanRestructuringModificationNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoanRestructuringModificationNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1100"
     ]
    },
    "us-gaap_LoanRestructuringModificationNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoanRestructuringModificationNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1100"
     ]
    },
    "cofs_LoanServicingFeesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "LoanServicingFeesNet",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityInSecondaryMarketLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fee amount from servicing real estate mortgages held by others, net of amortization.",
        "label": "Loan servicing fees, net of amortization"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansAndLeasesReceivableAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableAllowance",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": -1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Allowance for credit losses",
        "label": "Loans and Leases Receivable, Allowance",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "negatedLabel": "Allowance for loan 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": [
      "r16",
      "r20",
      "r88",
      "r1049"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableAllowanceForLoanLossesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableAllowanceForLoanLossesPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Loan Losses",
        "label": "Loans and Leases Receivable, Allowance for Loan Losses Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for estimating the allowance for losses on loans and lease receivables. The disclosure may include (a) how the entity determines each element of the allowance, (b) which loans are evaluated individually and which loans are evaluated as a group, (c) how the entity determines both the allocated and unallocated portions of the allowance, (d) how the entity determines the loss factors applied to graded loans in order to develop a general allowance, and (e) what self-correcting mechanism the entity uses to reduce differences between estimated and actual losses."
       }
      }
     },
     "auth_ref": [
      "r83"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableCommitmentsFixedRates": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableCommitmentsFixedRates",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesScheduleOfFinancialInstrumentsWithOffbalanceSheetRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Commitments, Fixed Rates",
        "documentation": "Reflects the amount of cash required to fully fund agreements to provide advances to borrowers and lessees at stated interest rates."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r166"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableCommitmentsVariableRates": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableCommitmentsVariableRates",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesScheduleOfFinancialInstrumentsWithOffbalanceSheetRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Commitments, Variable Rates",
        "documentation": "Reflects the amount of cash required to fully fund agreements to provide advances to borrowers and lessees at interest rates that increase or decrease depending on certain facts or circumstances."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r166"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableGrossCarryingAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableGrossCarryingAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Loans",
        "verboseLabel": "Loans, gross",
        "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": [
      "r191"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableGrossCarryingAmountCovered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableGrossCarryingAmountCovered",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loans and Leases Receivable, Gross, Carrying Amount, Covered, Total",
        "terseLabel": "Core Loans",
        "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_LoansAndLeasesReceivableMortgageBankingActivitiesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableMortgageBankingActivitiesPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans to Other Financial Institutions",
        "label": "Mortgage Banking Activity [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the lending, securitization, sales, transfers and servicing practices for mortgage banking activities."
       }
      }
     },
     "auth_ref": [
      "r975"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetOfDeferredIncome",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Loans",
        "label": "Loans and Leases Receivable, Net of Deferred Income",
        "terseLabel": "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": [
      "r78",
      "r191"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableNetReportedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetReportedAmount",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Net Amount",
        "totalLabel": "Loans, net",
        "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": [
      "r158",
      "r191"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableNetReportedAmountCovered",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmount",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total loans (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/20231231",
     "localname": "LoansAndLeasesReceivableOtherFinancialInstitution",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LoansAndLeasesReceivableNetReportedAmountCovered",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans to other financial institutions",
        "documentation": "The amount related to loans to other financial institutions.",
        "label": "Loans to other financial institutions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LoansAndLeasesReceivableRelatedParties": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableRelatedParties",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsLoansToRelatedPartiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Related Parties",
        "periodEndLabel": "Balance, end of year",
        "periodStartLabel": "Balance, beginning of year",
        "documentation": "For an unclassified balance sheet, reflects the carrying amount of unpaid loan amounts due from related parties at the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r157"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableRelatedPartiesAdditions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableRelatedPartiesAdditions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsLoansToRelatedPartiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Related Parties, Additions",
        "terseLabel": "New loans",
        "documentation": "Reflects the amount of new advances made to related parties in the form of loan and lease receivables."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r157"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableRelatedPartiesPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableRelatedPartiesPeriodIncreaseDecrease",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsLoansToRelatedPartiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of changes in related parties",
        "totalLabel": "Loans and Leases Receivable, Related Parties, Period Increase (Decrease), Total",
        "label": "Loans and Leases Receivable, Related Parties, Period Increase (Decrease)",
        "documentation": "Amount of increase (decrease) in loans and leases receivable due from related parties."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r157"
     ]
    },
    "us-gaap_LoansAndLeasesReceivableRelatedPartiesProceeds": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansAndLeasesReceivableRelatedPartiesProceeds",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsLoansToRelatedPartiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loans and Leases Receivable, Related Parties, Proceeds",
        "negatedTerseLabel": "Repayments",
        "documentation": "Amount of cash inflow from related parties which reduce the amount of loans and leases receivable due from related parties."
       }
      }
     },
     "auth_ref": [
      "r283",
      "r1078"
     ]
    },
    "us-gaap_LoansHeldForSaleFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansHeldForSaleFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/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_LoansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans [Member]",
        "label": "Loans [Member]",
        "documentation": "When a lender gives money or property over other debt securities sold by the issuer. In the event the issuer goes bankrupt, senior debt holders receive priority for [must receive] repayment [prior] relative to junior and unsecured (general) creditors."
       }
      }
     },
     "auth_ref": [
      "r67",
      "r988"
     ]
    },
    "us-gaap_LoansReceivableFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansReceivableFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans, net",
        "label": "Loans Receivable, Fair Value Disclosure",
        "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": [
      "r67"
     ]
    },
    "us-gaap_LoansReceivableHeldForSaleNetNotPartOfDisposalGroup": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LoansReceivableHeldForSaleNetNotPartOfDisposalGroup",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans held for sale",
        "periodEndLabel": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance, Ending Balance",
        "periodStartLabel": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance, Beginning Balance",
        "label": "Financing Receivable, Held-for-Sale, Not Part of Disposal Group, after Valuation Allowance",
        "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": [
      "r412",
      "r974"
     ]
    },
    "cofs_LoansToOtherFinancialInstitutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "LoansToOtherFinancialInstitutionsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans to Other Financial Institutions [Member]",
        "label": "Loans To Other Financial Institutions [Member]",
        "documentation": "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/20231231/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_LongtermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongtermDebtTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Type [Axis]",
        "documentation": "Information by type of long-term debt."
       }
      }
     },
     "auth_ref": [
      "r42"
     ]
    },
    "us-gaap_LongtermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongtermDebtTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfBankTermFundingProgramAdvancesParentheticalDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Debt, Type [Domain]",
        "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r97"
     ]
    },
    "us-gaap_LossOnDerivativeInstrumentsPretax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossOnDerivativeInstrumentsPretax",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss on Derivative Instruments, Pretax",
        "terseLabel": "Loss on Derivative Instruments, Pretax",
        "documentation": "Aggregate loss on all derivative instruments charged against earnings during the period, before tax effects."
       }
      }
     },
     "auth_ref": [
      "r123"
     ]
    },
    "us-gaap_MarketableSecuritiesPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MarketableSecuritiesPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r160"
     ]
    },
    "us-gaap_MarketingAndAdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MarketingAndAdvertisingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising and promotional",
        "totalLabel": "Marketing and Advertising Expense, Total",
        "label": "Marketing and Advertising Expense",
        "documentation": "The total expense recognized in the period for promotion, public relations, and brand or product advertising."
       }
      }
     },
     "auth_ref": [
      "r181"
     ]
    },
    "us-gaap_Maturity30To90DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Maturity30To90DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "30-89 days [Member]",
        "label": "Maturity 30 to 90 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": [
      "r352"
     ]
    },
    "us-gaap_MaturityOver90DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MaturityOver90DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Greater than 90 days [Member]",
        "label": "Maturity 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": [
      "r353"
     ]
    },
    "us-gaap_MaturityUpTo30DaysMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MaturityUpTo30DaysMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current [Member]",
        "label": "Maturity Less than 30 Days [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": [
      "r351"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum [Member]",
        "label": "Maximum [Member]",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542",
      "r543",
      "r544",
      "r597",
      "r808",
      "r863",
      "r896",
      "r897",
      "r953",
      "r954",
      "r955",
      "r956",
      "r967",
      "r979",
      "r980",
      "r993",
      "r1009",
      "r1015",
      "r1023",
      "r1166",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542",
      "r543",
      "r544",
      "r597",
      "r808",
      "r863",
      "r896",
      "r897",
      "r953",
      "r954",
      "r955",
      "r956",
      "r967",
      "r979",
      "r980",
      "r993",
      "r1009",
      "r1015",
      "r1023",
      "r1166",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285"
     ]
    },
    "us-gaap_MortgageBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MortgageBackedSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Mortgage-backed [Member]",
        "label": "Collateralized Mortgage-Backed Securities [Member]",
        "documentation": "Securities collateralized by mortgage loans."
       }
      }
     },
     "auth_ref": [
      "r1010",
      "r1011",
      "r1012",
      "r1106",
      "r1113",
      "r1118",
      "r1123",
      "r1131",
      "r1298"
     ]
    },
    "us-gaap_MortgageBankingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MortgageBankingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Mortgage Banking [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_MortgageBankingTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "MortgageBankingTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBanking"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Mortgage Banking",
        "documentation": "The entire disclosure for mortgage banking.",
        "label": "Mortgage Banking [Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MortgageLoansInProcessOfForeclosureAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MortgageLoansInProcessOfForeclosureAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Mortgage Loans in Process of Foreclosure, Amount",
        "terseLabel": "Mortgage Loans in Process of Foreclosure, Amount",
        "documentation": "Recorded investment of consumer mortgage loan receivables secured by residential real estate properties for which formal foreclosure proceedings are in process."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_MortgageLoansOnRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MortgageLoansOnRealEstate",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "SEC Schedule, 12-29, Real Estate Companies, Investment in Mortgage Loans on Real Estate, Ending Balance",
        "periodStartLabel": "SEC Schedule, 12-29, Real Estate Companies, Investment in Mortgage Loans on Real Estate, Beginning Balance",
        "label": "SEC Schedule, 12-29, Real Estate Companies, Investment in Mortgage Loans on Real Estate",
        "terseLabel": "SEC Schedule, 12-29, Real Estate Companies, Investment in Mortgage Loans on Real Estate, Ending Balance",
        "documentation": "Amount of investment in mortgage loan on real estate by entity with substantial portion of business acquiring and holding investment real estate or interest in real estate."
       }
      }
     },
     "auth_ref": [
      "r976"
     ]
    },
    "cofs_MortgageLoansServicedForOthers": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "MortgageLoansServicedForOthers",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The value of mortgage loans serviced for others which are accordingly not recorded on the company's consolidated balance sheet.",
        "label": "cofs_MortgageLoansServicedForOthers",
        "terseLabel": "Mortgage Loans Serviced for Others"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_MortgageServicingRights": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "MortgageServicingRights",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of noninterest income from mortgage servicing rights.",
        "label": "Mortgage servicing rights (Note 4)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_NatureOfOperationsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "NatureOfOperationsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nature of Operations",
        "documentation": "Disclosure of accounting policy for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.",
        "label": "Nature of Operations, Policy [Policy Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by/(used in) 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": [
      "r344"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash (used in)/provided by 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": [
      "r344"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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": [
      "r186",
      "r187",
      "r188"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income (Loss)",
        "label": "Net Income (Loss)",
        "totalLabel": "Net income",
        "verboseLabel": "Net income",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r188",
      "r225",
      "r303",
      "r324",
      "r327",
      "r332",
      "r349",
      "r361",
      "r365",
      "r366",
      "r367",
      "r368",
      "r371",
      "r372",
      "r386",
      "r396",
      "r405",
      "r407",
      "r409",
      "r468",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553",
      "r715",
      "r736",
      "r854",
      "r927",
      "r946",
      "r947",
      "r991",
      "r1030",
      "r1162"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasic",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Income (Loss) Available to Common Stockholders, Basic, Total",
        "label": "Net Income (Loss) Available to Common Stockholders, Basic",
        "terseLabel": "Net income",
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders."
       }
      }
     },
     "auth_ref": [
      "r337",
      "r365",
      "r366",
      "r367",
      "r368",
      "r375",
      "r376",
      "r387",
      "r390",
      "r396",
      "r405",
      "r407",
      "r409",
      "r991"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersDiluted": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLossAvailableToCommonStockholdersDiluted",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Income (Loss) Available to Common Stockholders, Diluted, Total",
        "label": "Net Income (Loss) Available to Common Stockholders, Diluted",
        "verboseLabel": "Net income",
        "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": [
      "r337",
      "r377",
      "r382",
      "r383",
      "r384",
      "r385",
      "r387",
      "r390"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231",
     "localname": "NonaccrualFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonaccrual Financing Receivable",
        "label": "Nonaccrual Financing Receivable [Member]",
        "documentation": "Nonaccrual financing receivable."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NondesignatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NondesignatedMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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": [
      "r24"
     ]
    },
    "us-gaap_NoninterestBearingDepositLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestBearingDepositLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deposits - noninterest-bearing (Note 9)",
        "terseLabel": "Noninterest-bearing deposits",
        "totalLabel": "Noninterest-Bearing Deposit Liabilities, Total",
        "label": "Noninterest-Bearing Deposit Liabilities",
        "documentation": "The aggregate amount of all domestic and foreign noninterest-bearing deposits liabilities held by the entity."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_NoninterestBearingDomesticDepositDemand": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestBearingDomesticDepositDemand",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails": {
       "parentTag": "us-gaap_Deposits",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsDepositBalancesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noninterest-bearing demand deposit",
        "label": "Noninterest-Bearing Domestic Deposit, Demand",
        "documentation": "Amount of money in noninterest-bearing domestic accounts that entitle the depositor to withdraw funds at any time without prior notice, also known as demand deposits."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "us-gaap_NoninterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest Expense",
        "totalLabel": "Total noninterest expense",
        "documentation": "Total aggregate amount of all noninterest expense."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_NoninterestExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestExpenseAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noninterest expense",
        "label": "Noninterest Expense [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoninterestIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest Income",
        "totalLabel": "Total 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": [
      "r233"
     ]
    },
    "us-gaap_NoninterestIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncomeAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Noninterest income",
        "label": "Noninterest Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NoninterestIncomeOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoninterestIncomeOther",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noninterest Income, Other",
        "verboseLabel": "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": [
      "r233"
     ]
    },
    "us-gaap_NonperformingFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NonperformingFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonperforming Financial Instruments",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "cofs_NoteToFinancialStatementDetailsTextual": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "NoteToFinancialStatementDetailsTextual",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Note To Financial Statement Details Textual",
        "label": "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/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Grand Total",
        "label": "Financing Receivable, before Allowance for Credit Loss",
        "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": [
      "r279",
      "r289",
      "r290",
      "r312",
      "r492",
      "r503",
      "r1000",
      "r1001",
      "r1057",
      "r1144"
     ]
    },
    "cofs_NotesToFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "NotesToFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Notes To Financial Statements Abstract",
        "label": "Notes To Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_NumberOfDaysIndividuallyEvaluation": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "NumberOfDaysIndividuallyEvaluation",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of days individually evaluation",
        "label": "Number of Days Individually Evaluation",
        "documentation": "Number of Days Individually Evaluation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of reportable segments",
        "label": "Number of Reportable Segments",
        "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r1096"
     ]
    },
    "cofs_OCIDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAOCIForAmortizationOfNetUnrealizedGainLossTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OCIDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAOCIForAmortizationOfNetUnrealizedGainLossTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of net unrealized (gains) losses on securities transferred from AFS to HTM, 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": "Less: 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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Occupancy and equipment (Note 5)",
        "label": "Occupancy, Net",
        "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": [
      "r182",
      "r234",
      "r261"
     ]
    },
    "us-gaap_OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossAfterTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossAfterTax",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "OCI, Debt Securities, Available-for-Sale, Transfer to Held-to-Maturity, Adjustment from AOCI for Amortization of Gain (Loss), after Tax",
        "terseLabel": "OCI, Debt Securities, Available-for-Sale, Transfer to Held-to-Maturity, Adjustment from AOCI for Amortization of Gain (Loss), after Tax",
        "documentation": "Amount, after 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": [
      "r1071",
      "r1103"
     ]
    },
    "us-gaap_OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: net unrealized (gains) losses on securities transferred from AFS to HTM",
        "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": [
      "r1103"
     ]
    },
    "us-gaap_OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OciDebtSecuritiesAvailableForSaleTransferToHeldToMaturityAdjustmentFromAociForAmortizationOfGainLossTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized (gains) losses on securities transferred from AFS to HTM, 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": [
      "r1103"
     ]
    },
    "cofs_OciDebtSecuritiesAvailableforsaleTransferToHeldtomaturityAdjustmentFromAociUnamortizedAfterTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OciDebtSecuritiesAvailableforsaleTransferToHeldtomaturityAdjustmentFromAociUnamortizedAfterTax",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax, of adjustment from accumulated other comprehensive income (loss) stay unamortized 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).",
        "label": "cofs_OciDebtSecuritiesAvailableforsaleTransferToHeldtomaturityAdjustmentFromAociUnamortizedAfterTax",
        "terseLabel": "OCI, Debt Securities, Available-for-Sale, Transfer to Held-to-Maturity, Adjustment from AOCI Unamortized, After Tax"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on held-to-maturity securities recognized in other comprehensive income.",
        "label": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
        "totalLabel": "Unrealized loss on held to maturity securities, net of tax"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization of net unrealized (gains) losses on securities transferred from AFS to HTM",
        "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).",
        "label": "cofs_OciDebtSecuritiesTransferToHeldtomaturityFromAvailableforsaleAdjustmentFromAociForAmortizationOfNetUnrealizedGainLossBeforeTax"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OffBalanceSheetCreditLossLiabilityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OffBalanceSheetCreditLossLiabilityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Off-Balance-Sheet, Credit Loss, Liability [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OffBalanceSheetCreditLossLiabilityLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OffBalanceSheetCreditLossLiabilityLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Off Balance Sheet Credit Loss Liability [Line Items]",
        "documentation": "Off Balance Sheet Credit Loss Liability"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OffBalanceSheetCreditLossLiabilityTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OffBalanceSheetCreditLossLiabilityTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Off Balance Sheet Credit Loss Liability [Table]",
        "documentation": "Off Balance Sheet Credit Loss Liability."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OneSofrCapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OneSofrCapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "One SOFR Cap Agreement.",
        "label": "One SOFR Cap Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Expense",
        "terseLabel": "Operating Lease, Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r1275"
     ]
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails2": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total operating lease liabilities",
        "totalLabel": "Operating Lease, Liability, Total",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityStatementOfFinancialPositionExtensibleList": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityStatementOfFinancialPositionExtensibleList",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease, Liability, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r758"
     ]
    },
    "us-gaap_OperatingLossCarryforwards": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLossCarryforwards",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net operating losses",
        "label": "Operating Loss Carryforwards",
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws."
       }
      }
     },
     "auth_ref": [
      "r108"
     ]
    },
    "cofs_OperatingLossCarryforwardsExpirationYear": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OperatingLossCarryforwardsExpirationYear",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating loss carryforwards expiration year",
        "label": "Operating Loss Carryforwards Expiration Year",
        "documentation": "Operating loss carryforwards expiration year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "totalLabel": "Other Assets, Total",
        "label": "Other Assets",
        "documentation": "Amount of assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r216",
      "r309",
      "r843",
      "r1032"
     ]
    },
    "us-gaap_OtherAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets [Member]",
        "documentation": "Primary financial statement caption encompassing other assets."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r136"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrealized gain (loss) on AFS 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": [
      "r318",
      "r319",
      "r320"
     ]
    },
    "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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.",
        "label": "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationBeforeTax",
        "negatedLabel": "Less: amortization of net unrealized (gains) losses included in net income"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeAmortizationOfNetUnrealizedGainLossReclassificationTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: reclassification adjustment for net (gain) loss on cash flow hedge, Income tax benefit (expense)",
        "documentation": "The amount of tax on other comprehensive income (loss) cash flow hedge amortization of net unrealized gain (loss) reclassification.",
        "label": "Less: amortization of net unrealized (gains) losses included in net income, Income tax benefit (expense)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Unrealized gain (loss) on cash flow hedge instruments, net of tax",
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification and 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": [
      "r317",
      "r320"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in net unrealized gain (loss) on cash flow hedge",
        "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax",
        "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": [
      "r317",
      "r320",
      "r686",
      "r687",
      "r692"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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 derivatives, 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": [
      "r321"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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": [
      "r275",
      "r320",
      "r322"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less: reclassification adjustment for net (gain) loss on cash flow hedge, Income tax benefit (expense)",
        "negatedLabel": "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",
        "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": [
      "r321"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other comprehensive income (loss)",
        "label": "Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Other comprehensive income (loss), net of tax",
        "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r34",
      "r325",
      "r328",
      "r334",
      "r741",
      "r742",
      "r747",
      "r818",
      "r855",
      "r1072",
      "r1073"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, before Tax",
        "negatedLabel": "Less: reclassification adjustment for net (gain) loss included in net income",
        "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": [
      "r7",
      "r178",
      "r323",
      "r466"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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": [
      "r5"
     ]
    },
    "cofs_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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/20231231",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForAvailableForSaleSecuritiesFairValueHedgeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reclassification of unrealized gain (loss) upon transfer of securities from AFS to HTM",
        "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": [
      "r2",
      "r323"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAociForInvestmentTransferredFromAvailableForSaleToEquityMethodTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "cofs_OciDebtSecuritiesHeldtomaturityUnrealizedGainLossAfterAdjustmentAndTaxTotal",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reclassification of unrealized gain (loss) upon transfer of securities from AFS to HTM, Income tax benefit (expense)",
        "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": [
      "r2"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in net unrealized gain (loss) on AFS 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": [
      "r318",
      "r320",
      "r466"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Change in net unrealized gain (loss) on AFS 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": [
      "r5",
      "r319"
     ]
    },
    "us-gaap_OtherInterestAndDividendIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherInterestAndDividendIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestAndDividendIncomeOperating",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Interest and Dividend Income",
        "documentation": "Amount, after discount, accretion and premium amortization, of interest income and dividend income classified as other."
       }
      }
     },
     "auth_ref": [
      "r238"
     ]
    },
    "us-gaap_OtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Other liabilities (Notes 12)",
        "terseLabel": "Other liabilities",
        "totalLabel": "Other Liabilities, Total",
        "label": "Other Liabilities",
        "documentation": "Amount of liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r155",
      "r840",
      "r901",
      "r902",
      "r1032",
      "r1300"
     ]
    },
    "us-gaap_OtherLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities [Member]",
        "documentation": "Primary financial statement caption encompassing other liabilities."
       }
      }
     },
     "auth_ref": [
      "r122",
      "r136"
     ]
    },
    "us-gaap_OtherLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLongTermDebt",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "netLabel": "Trust preferred subordinated debentures",
        "label": "Other Long-Term Debt",
        "totalLabel": "Other Long-Term Debt, Total",
        "documentation": "Amount of long-term debt classified as other."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r220",
      "r1297"
     ]
    },
    "us-gaap_OtherNoninterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNoninterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 2.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Noninterest Expense",
        "verboseLabel": "Other",
        "documentation": "Amount of noninterest expense classified as other."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_OtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherRealEstate",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other real estate owned, net (Note 7)",
        "totalLabel": "Other Real Estate, Total",
        "label": "Other Real Estate",
        "periodEndLabel": "Balance, end of year",
        "periodStartLabel": "Balance, beginning of year",
        "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": [
      "r152"
     ]
    },
    "us-gaap_OtherRealEstateAdditions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherRealEstateAdditions",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions from merger",
        "label": "Other Real Estate, Additions",
        "documentation": "Additions 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 excludes real estate assets taken in settlement of troubled loans through surrender or foreclosure."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherRealEstateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherRealEstateFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsAssetsMeasuredAtFairValueOnANonrecurringBasisDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Real Estate Fair Value",
        "terseLabel": "Other Real Estate",
        "documentation": "Represents fair value of other real estate."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherRealEstateOwnedAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherRealEstateOwnedAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Real Estate Owned [Abstract]",
        "documentation": "Other Real Estate Owned."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_OtherRealEstateOwnedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "OtherRealEstateOwnedTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Real Estate Owned",
        "documentation": "Tabular disclosure of other real estate owned.",
        "label": "Other Real Estate Owned [Table Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherThanTemporaryImpairmentLossDebtSecuritiesAvailableForSale",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other-than-temporary Impairment Loss, Debt Securities, Available-for-Sale",
        "terseLabel": "Other-than-temporary Impairment Loss, Debt Securities, Available-for-Sale",
        "documentation": "Amount of other-than-temporary impairment (OTTI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), recognized in earnings and other comprehensive loss (OCI)."
       }
      }
     },
     "auth_ref": [
      "r246"
     ]
    },
    "srt_ParentCompanyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ParentCompanyMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Parent Company [Member]",
        "documentation": "Registrant with controlling financial interest in one or more subsidiaries. Controlling interest in subsidiary includes, but is not limited to, primary beneficiary of variable interest entity (VIE). Controlling interest in subsidiary excludes broker-dealer with controlling financial interest in subsidiary but control is likely to be temporary."
       }
      }
     },
     "auth_ref": [
      "r356"
     ]
    },
    "us-gaap_PassMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PassMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pass",
        "label": "Pass [Member]",
        "documentation": "A category of financing receivables not considered to be special mention, substandard, doubtful, and loss receivables."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r1147"
     ]
    },
    "cofs_PastDue30DaysOrMoreMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PastDue30DaysOrMoreMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to past due 30 days or more.",
        "label": "Past Due 30 Days or More [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PastDueFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PastDueFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aging Analysis of Loans by Loan Category",
        "label": "Financing Receivable, Past Due [Table Text Block]",
        "documentation": "Tabular disclosure of aging analysis for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r82",
      "r1001",
      "r1146"
     ]
    },
    "cofs_PayFixedSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PayFixedSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Pay Fixed Swap Agreement.",
        "label": "Pay Fixed Swap Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PayFixedSwapAgreementsExpiringIn2032Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PayFixedSwapAgreementsExpiringIn2032Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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/20231231",
     "localname": "PayFloatingSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Pay Floating Swap Agreement.",
        "label": "Pay Floating Swap Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PaymentsForDerivativeContractsSettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PaymentsForDerivativeContractsSettlements",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payments for derivative contracts settlements",
        "label": "Payments for Derivative Contracts Settlements",
        "documentation": "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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityInSecondaryMarketLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans originated for resale, net of principal payments",
        "label": "Payment for Origination, Loan, Mortgage, Held-for-Sale",
        "negatedLabel": "Loans originated for sale",
        "documentation": "The amount of cash paid for the origination of mortgages that are held for sale."
       }
      }
     },
     "auth_ref": [
      "r985",
      "r1083"
     ]
    },
    "us-gaap_PaymentsForProceedsFromDerivativeInstrumentInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForProceedsFromDerivativeInstrumentInvestingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments for (Proceeds from) Derivative Instrument, Investing Activities, Total",
        "label": "Payments for (Proceeds from) Derivative Instrument, Investing Activities",
        "negatedLabel": "Proceeds from (payments for) derivative contracts, net",
        "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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments for (Proceeds from) Loans and Leases, Total",
        "label": "Payments for (Proceeds from) Loans and Leases",
        "negatedLabel": "Loan originations and payments, net",
        "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": [
      "r821"
     ]
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments for Repurchase of Common Stock",
        "terseLabel": "Repurchase of common stock",
        "negatedLabel": "Repurchase of common stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_PaymentsOfDividends": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfDividends",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 5.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Cash dividends",
        "totalLabel": "Payments of Dividends, Total",
        "label": "Payments of Dividends",
        "negatedTerseLabel": "Cash dividends paid",
        "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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": [
      "r341"
     ]
    },
    "us-gaap_PaymentsToAcquireAvailableForSaleSecuritiesDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireAvailableForSaleSecuritiesDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Debt Securities, Available-for-Sale",
        "negatedLabel": "Purchases of securities available for sale",
        "negatedTerseLabel": "Purchases of securities",
        "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": [
      "r50",
      "r338",
      "r433"
     ]
    },
    "us-gaap_PaymentsToAcquireEquitySecuritiesFvNi": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireEquitySecuritiesFvNi",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Equity Securities, FV-NI",
        "negatedLabel": "Purchases of equity securities",
        "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": [
      "r267",
      "r343"
     ]
    },
    "us-gaap_PaymentsToAcquireFederalHomeLoanBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireFederalHomeLoanBankStock",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of Federal Home Loan Bank stock",
        "label": "Payments to Acquire Federal Home Loan Bank Stock",
        "documentation": "Amount of cash outflow to acquire Federal Home Loan Bank (FHLB) stock."
       }
      }
     },
     "auth_ref": [
      "r1080"
     ]
    },
    "us-gaap_PaymentsToAcquireHeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireHeldToMaturitySecurities",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payments to Acquire Held-to-Maturity Securities",
        "negatedLabel": "Purchases of securities held to maturity",
        "documentation": "Amount of cash outflow through purchase of long-term held-to-maturity securities."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r433"
     ]
    },
    "us-gaap_PaymentsToAcquireInterestInSubsidiariesAndAffiliates": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireInterestInSubsidiariesAndAffiliates",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments to Acquire Interest in Subsidiaries and Affiliates, Total",
        "label": "Payments to Acquire Interest in Subsidiaries and Affiliates",
        "negatedLabel": "Investment in Subsidiary",
        "documentation": "The cash outflow associated with the acquisition of or advances to an entity that is related to it but not strictly controlled (for example, an unconsolidated subsidiary, affiliate, and joint venture or equity method investment) or the acquisition of an additional interest in a subsidiary (controlled entity)."
       }
      }
     },
     "auth_ref": [
      "r51"
     ]
    },
    "us-gaap_PaymentsToAcquireLifeInsurancePolicies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireLifeInsurancePolicies",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payment to Acquire Life Insurance Policy, Investing Activities",
        "negatedLabel": "Purchase of bank-owned life insurance policies",
        "documentation": "Amount of cash outflow for payment of premium on corporate-owned life insurance policy, classified as investing activities. Includes, but is not limited to, bank-owned life insurance policy."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r184"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Additions to premises and equipment",
        "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": [
      "r185"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Benefit Plans",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r576",
      "r577",
      "r578",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r593",
      "r1012"
     ]
    },
    "cofs_PercentageOfTotalClassOfFinancingReceivable": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PercentageOfTotalClassOfFinancingReceivable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "% of Total Class of Financing Receivable",
        "label": "Percentage of Total Class of Financing Receivable",
        "documentation": "Percentage of total class of financing receivable."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_PerformanceStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "PerformanceStockUnitsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Relating to Performance Stock Units.",
        "label": "Performance Stock Units [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PerformingFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformingFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performing Financial Instruments",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1227",
      "r1228",
      "r1229",
      "r1230",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1235",
      "r1236",
      "r1237",
      "r1238",
      "r1239",
      "r1240",
      "r1241",
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1227",
      "r1228",
      "r1229",
      "r1230",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1235",
      "r1236",
      "r1237",
      "r1238",
      "r1239",
      "r1240",
      "r1241",
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_PledgedStatusAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PledgedStatusAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pledged Status [Axis]",
        "documentation": "Information by pledged or not pledged status of asset owned by entity."
       }
      }
     },
     "auth_ref": [
      "r680",
      "r899",
      "r1018"
     ]
    },
    "us-gaap_PledgedStatusDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PledgedStatusDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pledged Status [Domain]",
        "documentation": "Pledged or not pledged status of asset owned by entity."
       }
      }
     },
     "auth_ref": [
      "r680",
      "r899",
      "r1018"
     ]
    },
    "us-gaap_PledgingPurposeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PledgingPurposeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pledging Purpose [Axis]",
        "documentation": "Information by pledging purpose of pledged asset owned."
       }
      }
     },
     "auth_ref": [
      "r787",
      "r1018",
      "r1021",
      "r1046"
     ]
    },
    "us-gaap_PledgingPurposeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PledgingPurposeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pledging Purpose [Domain]",
        "documentation": "Pledging purpose of pledged asset owned."
       }
      }
     },
     "auth_ref": [
      "r787",
      "r1018",
      "r1021",
      "r1046"
     ]
    },
    "us-gaap_PortionAtFairValueFairValueDisclosureMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PortionAtFairValueFairValueDisclosureMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "axisDefault": "Portion at Fair Value Measurement [Member] [Default]",
        "label": "Portion at Fair Value Measurement [Member]",
        "documentation": "Measured at fair value for financial reporting purposes."
       }
      }
     },
     "auth_ref": [
      "r734"
     ]
    },
    "us-gaap_PostemploymentBenefitPlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PostemploymentBenefitPlansPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Benefit Plans",
        "label": "Postemployment Benefit Plans, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for postemployment benefits. Postemployment benefits are benefits provided to former or inactive employees, their beneficiaries, and covered dependents after employment but before retirement, except for: a) benefits provided through a pension or postretirement benefit plan, b) individual deferred compensation arrangements, c) special or contractual termination benefits, and d) stock compensation plans."
       }
      }
     },
     "auth_ref": [
      "r575"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, authorized (in shares)",
        "label": "Preferred Stock, Shares Authorized",
        "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": [
      "r171",
      "r906"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "periodEndLabel": "Preferred Stock, Shares Outstanding, Ending Balance",
        "periodStartLabel": "Preferred Stock, Shares Outstanding, Beginning Balance",
        "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": [
      "r171",
      "r906",
      "r925",
      "r1305",
      "r1306"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock; shares authorized: 100,000; shares outstanding: none",
        "label": "Preferred Stock, Value, Issued",
        "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": [
      "r171",
      "r846",
      "r1020"
     ]
    },
    "us-gaap_PrimeRateMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrimeRateMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prime Rate [Member]",
        "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reclassifications",
        "label": "Reclassification, Comparability Adjustment [Policy Text Block]",
        "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": [
      "r1066"
     ]
    },
    "cofs_ProceedsFromBankOwnedLifeIncomePolicy": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ProceedsFromBankOwnedLifeIncomePolicy",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from BOLI policy",
        "documentation": "Represents proceeds from bank owned life income policy.",
        "label": "Proceeds from BOLI policy"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromDerivativeInstrumentFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromDerivativeInstrumentFinancingActivities",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Derivative Instrument, Financing Activities",
        "terseLabel": "Proceeds from Derivative Instrument, Financing Activities",
        "documentation": "The cash inflow provided by derivative instruments during the period, which are classified as financing activities, excluding those designated as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r340",
      "r986"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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": [
      "r6"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfLongTermDebt",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Proceeds from Issuance of Long-Term Debt, Total",
        "label": "Proceeds from Issuance of Long-Term Debt",
        "terseLabel": "Proceeds from borrowings",
        "documentation": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r878"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfSubordinatedLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfSubordinatedLongTermDebt",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from issuance of subordinated long-term debt",
        "label": "Proceeds from Issuance of Subordinated Long-Term Debt",
        "documentation": "The cash inflow from a borrowing where a lender is placed in a lien position behind debt having a higher priority of repayment (senior) in liquidation of the entity's assets or underlying collateral."
       }
      }
     },
     "auth_ref": [
      "r52"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities, prepayments and calls of securities available for sale",
        "label": "Proceeds from Maturities, Prepayments and Calls of Debt 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": [
      "r338",
      "r339",
      "r1105"
     ]
    },
    "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfHeldToMaturitySecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities, prepayments and calls of securities held to maturity",
        "label": "Proceeds from Maturities, Prepayments and Calls of Held-to-Maturity Securities",
        "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": [
      "r49",
      "r1105"
     ]
    },
    "us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleAndMaturityOfMarketableSecurities",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales of securities available for sale",
        "label": "Proceeds from Sale and Maturity of Marketable Securities",
        "documentation": "The cash inflow associated with the aggregate amount received by the entity through sale or maturity of marketable securities (held-to-maturity or available-for-sale) during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromSaleOfAvailableForSaleSecuritiesDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfAvailableForSaleSecuritiesDebt",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSalesOfSecuritiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Sale of Debt Securities, Available-for-Sale",
        "terseLabel": "Proceeds from sales of securities",
        "documentation": "Amount of cash inflow from sale of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r338",
      "r433",
      "r465"
     ]
    },
    "us-gaap_ProceedsFromSaleOfEquitySecuritiesFvNi": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfEquitySecuritiesFvNi",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales of equity securities",
        "label": "Proceeds from Sale of Equity Securities, FV-NI",
        "documentation": "Amount of cash inflow from sale of 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": [
      "r267",
      "r343"
     ]
    },
    "us-gaap_ProceedsFromSaleOfFederalHomeLoanBankStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfFederalHomeLoanBankStock",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from Federal Home Loan Bank stock redemption",
        "label": "Proceeds from Sale of Federal Home Loan Bank Stock",
        "documentation": "Amount of cash inflow from sale of Federal Home Loan Bank (FHLB) stock."
       }
      }
     },
     "auth_ref": [
      "r1079"
     ]
    },
    "us-gaap_ProceedsFromSaleOfLoansHeldForSale": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfLoansHeldForSale",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityInSecondaryMarketLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from loan sales",
        "totalLabel": "Proceeds from Sale, Loan, Held-for-Sale, Total",
        "label": "Proceeds from Sale, Loan, Held-for-Sale",
        "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": [
      "r1081",
      "r1082"
     ]
    },
    "us-gaap_ProceedsFromSaleOfOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfOtherRealEstate",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Sale of Other Real Estate",
        "negatedLabel": "Proceeds from sales",
        "documentation": "The cash inflow associated with the sale of other real estate not otherwise defined in the taxonomy."
       }
      }
     },
     "auth_ref": [
      "r48"
     ]
    },
    "us-gaap_ProceedsFromSaleOfRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfRealEstate",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from sales of other real estate owned",
        "label": "Proceeds from Sale of Real Estate",
        "documentation": "Cash received for the sale of real estate that is not part of an investing activity during the current period."
       }
      }
     },
     "auth_ref": [
      "r183"
     ]
    },
    "us-gaap_ProfessionalFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProfessionalFees",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails2": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Professional fees",
        "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": [
      "r1030",
      "r1302",
      "r1304"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Premises and Equipment",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r199",
      "r272",
      "r276",
      "r277"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Premises and equipment, gross",
        "periodEndLabel": "Property, Plant and Equipment, Gross, Ending Balance",
        "periodStartLabel": "Property, Plant and Equipment, Gross, Beginning Balance",
        "totalLabel": "Property, Plant and Equipment, Gross, Total",
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business 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": [
      "r200",
      "r305",
      "r852"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [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_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Premises and equipment, net (Note 5)",
        "label": "Property, Plant and Equipment, Net",
        "totalLabel": "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": [
      "r11",
      "r829",
      "r852",
      "r1020"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Premises and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r272",
      "r276",
      "r850"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Premises and Equipment",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Tangible Asset [Domain]",
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, useful life (year)",
        "label": "Property, Plant and Equipment, Useful Life",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ProvisionForCreditLossesOnUnfundedCommitments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ProvisionForCreditLossesOnUnfundedCommitments",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_ProvisionForLoanLeaseAndOtherLosses",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Provision for (reversal of) credit losses on unfunded commitments",
        "label": "Provision For Credit Losses On Unfunded Commitments",
        "documentation": "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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_InterestIncomeExpenseAfterProvisionForLoanLoss",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Provision for (reversal of) credit losses expense",
        "verboseLabel": "Reversal of provision for credit losses",
        "terseLabel": "(Reversal of) provision for credit losses",
        "label": "Provision for Loan, Lease, and Other Losses",
        "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": [
      "r9",
      "r17",
      "r229"
     ]
    },
    "us-gaap_ProvisionForLoanLossesExpensed": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForLoanLossesExpensed",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_ProvisionForLoanLeaseAndOtherLosses",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Provision for (reversal of) credit losses on loans",
        "terseLabel": "Provision",
        "label": "Financing Receivable, Credit Loss, Expense (Reversal)",
        "documentation": "Amount of credit loss expense (reversal of expense) for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r488",
      "r817"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542",
      "r543",
      "r544",
      "r577",
      "r597",
      "r634",
      "r635",
      "r636",
      "r779",
      "r808",
      "r863",
      "r896",
      "r897",
      "r953",
      "r954",
      "r955",
      "r956",
      "r967",
      "r979",
      "r980",
      "r993",
      "r1009",
      "r1015",
      "r1023",
      "r1025",
      "r1160",
      "r1166",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r541",
      "r542",
      "r543",
      "r544",
      "r577",
      "r597",
      "r634",
      "r635",
      "r636",
      "r779",
      "r808",
      "r863",
      "r896",
      "r897",
      "r953",
      "r954",
      "r955",
      "r956",
      "r967",
      "r979",
      "r980",
      "r993",
      "r1009",
      "r1015",
      "r1023",
      "r1025",
      "r1160",
      "r1166",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285"
     ]
    },
    "us-gaap_RealEstateOwnedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RealEstateOwnedTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwned"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Real Estate Owned [Text Block]",
        "documentation": "The entire disclosure for real estate owned (as defined). Generally, the largest component of real estate owned by lenders is assets taken in settlement of troubled loans through surrender or foreclosure. 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."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "us-gaap_RealEstateOwnedValuationAllowancePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RealEstateOwnedValuationAllowancePolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Real Estate Owned",
        "label": "Real Estate Owned, Valuation Allowance, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for establishing and maintaining the valuation allowance related to real estate owned."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReceivablesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Receivables [Abstract]",
        "label": "Receivables [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReclassificationTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReclassificationTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1066"
     ]
    },
    "us-gaap_ReclassificationTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReclassificationTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1066"
     ]
    },
    "cofs_ReclassifiedFromAvailableforsaleSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ReclassifiedFromAvailableforsaleSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents reclassified from available for sale securities.",
        "label": "Reclassified From Available-for-sale Securities [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Regulatory Capital Requirements under Banking Regulations [Text Block]",
        "documentation": "The entire disclosure for regulatory capital requirement for depository and lending institutions. Institutions include, but not are not limited to, finance company, insured depository institution, bank holding company, savings and loan association holding company, bank and savings institution not federally insured, mortgage company, foreign financial institution and credit union."
       }
      }
     },
     "auth_ref": [
      "r830",
      "r831",
      "r832",
      "r834",
      "r835",
      "r836",
      "r838",
      "r839"
     ]
    },
    "us-gaap_RelatedPartyDepositLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyDepositLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related party deposit liabilities",
        "label": "Related Party Deposit Liabilities",
        "documentation": "Amount of deposits held by the entity for a related party (entity, shareholder, employee)."
       }
      }
     },
     "auth_ref": [
      "r1088"
     ]
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RelatedPartyTransactionsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactions1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transactions",
        "label": "Related Party Transactions Disclosure [Text Block]",
        "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates."
       }
      }
     },
     "auth_ref": [
      "r766",
      "r767",
      "r768",
      "r769",
      "r770",
      "r882",
      "r883",
      "r884",
      "r930",
      "r931",
      "r932",
      "r951",
      "r952"
     ]
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RepaymentsOfLongTermDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Repayments of Long-Term Debt, Total",
        "label": "Repayments of Long-Term Debt",
        "negatedLabel": "Payments on borrowings",
        "negatedTerseLabel": "Payments on borrowings",
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r879"
     ]
    },
    "us-gaap_ResidentialPortfolioSegmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResidentialPortfolioSegmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAgingAnalysisOfLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesNonaccrualLoansByLoanCategoryDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Residential real estate [Member]",
        "terseLabel": "Residential Portfolio Segment [Member]",
        "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/20231231/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": [
      "r993",
      "r998",
      "r1189"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "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_RetailConsumerConstructionRealEstateResidentialRealEstateAndLoansToOtherFinancialInstitutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "RetailConsumerConstructionRealEstateResidentialRealEstateAndLoansToOtherFinancialInstitutionsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retail [Member]",
        "label": "Retail-Consumer, Construction Real Estate, Residential Real Estate and Loans to Other Financial Institutions [Member]",
        "documentation": "Retail-consumer, construction real estate, residential real estate and loans to other financial institutions."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retained earnings",
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r203",
      "r848",
      "r870",
      "r875",
      "r880",
      "r907",
      "r1020"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r299",
      "r357",
      "r358",
      "r359",
      "r362",
      "r370",
      "r372",
      "r473",
      "r479",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r699",
      "r700",
      "r703",
      "r713",
      "r866",
      "r868",
      "r885",
      "r1305"
     ]
    },
    "us-gaap_RetirementPlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetirementPlanNameAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Plan Name [Axis]",
        "documentation": "Information by name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r1015",
      "r1047",
      "r1167",
      "r1168",
      "r1169",
      "r1170",
      "r1171",
      "r1172",
      "r1173",
      "r1174",
      "r1175",
      "r1176",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201",
      "r1202",
      "r1203",
      "r1204",
      "r1205",
      "r1206",
      "r1207",
      "r1208",
      "r1209",
      "r1210",
      "r1211",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1216",
      "r1217",
      "r1218",
      "r1219",
      "r1220",
      "r1221",
      "r1222",
      "r1223",
      "r1224",
      "r1225",
      "r1226"
     ]
    },
    "us-gaap_RetirementPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetirementPlanNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Plan Name [Domain]",
        "documentation": "Name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r1015",
      "r1047",
      "r1167",
      "r1168",
      "r1169",
      "r1170",
      "r1171",
      "r1172",
      "r1173",
      "r1174",
      "r1175",
      "r1176",
      "r1177",
      "r1178",
      "r1179",
      "r1180",
      "r1181",
      "r1182",
      "r1183",
      "r1184",
      "r1185",
      "r1186",
      "r1187",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192",
      "r1193",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1198",
      "r1199",
      "r1200",
      "r1201",
      "r1202",
      "r1203",
      "r1204",
      "r1205",
      "r1206",
      "r1207",
      "r1208",
      "r1209",
      "r1210",
      "r1211",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1216",
      "r1217",
      "r1218",
      "r1219",
      "r1220",
      "r1221",
      "r1222",
      "r1223",
      "r1224",
      "r1225",
      "r1226"
     ]
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAcquiredPortfolioAndTheAcquisitionFairValueAdjustmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesLoansByTypeAsPercentageOfPortfolioDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfLoansForImpairmentAndInterestRecognizedOnImpairedLoansDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForLoanLossesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table]",
        "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": [
      "r44"
     ]
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans by Type as Percentage of Portfolio",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of the various 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": [
      "r44"
     ]
    },
    "us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income",
        "label": "Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accumulated other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r1273",
      "r1274"
     ]
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Acquired Intangible Assets",
        "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]",
        "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "cofs_ScheduleOfActivityInSecondaryMarketLoansTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ScheduleOfActivityInSecondaryMarketLoansTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Activity in Secondary Market Loans",
        "documentation": "Tabular disclosure of activity in secondary market loans.",
        "label": "Schedule of Activity in Secondary Market Loans [Table Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "cofs_ScheduleOfBankTermFundingProgramAdvancesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ScheduleOfBankTermFundingProgramAdvancesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Bank Term Funding Program Advances",
        "label": "Schedule of Bank Term Funding Program , Advances [Table Text Block]",
        "documentation": "Schedule of bank term funding program , advances."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfComplianceWithRegulatoryCapitalRequirementsForMortgageCompaniesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfComplianceWithRegulatoryCapitalRequirementsForMortgageCompaniesTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Banking Regulation, Mortgage Banking, Capital Requirement [Table]",
        "documentation": "A table disclosing the entity's required and actual net worth amounts as of the balance sheet date, by secondary market investor."
       }
      }
     },
     "auth_ref": [
      "r970",
      "r971",
      "r972",
      "r973"
     ]
    },
    "us-gaap_ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfComplianceWithRegulatoryCapitalRequirementsUnderBankingRegulationsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Compliance with Regulatory Capital Requirements under Banking Regulations [Table Text Block]",
        "documentation": "Tabular disclosure of the capital amounts and ratios as of the balance sheet date, indicating whether the entity or entities are in compliance with regulatory capital requirements, by entity."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "srt_ScheduleOfCondensedBalanceSheetTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfCondensedBalanceSheetTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Condensed Balance Sheets",
        "label": "Condensed Balance Sheet [Table Text Block]",
        "documentation": "Tabular disclosure of condensed balance sheet, including, but not limited to, balance sheets of consolidated entities and consolidation eliminations."
       }
      }
     },
     "auth_ref": [
      "r1061",
      "r1089"
     ]
    },
    "srt_ScheduleOfCondensedCashFlowStatementTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfCondensedCashFlowStatementTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Condensed Statements of Cash Flows",
        "label": "Condensed Cash Flow Statement [Table Text Block]",
        "documentation": "Tabular disclosure of condensed cash flow statement, including, but not limited to, cash flow statements of consolidated entities and consolidation eliminations."
       }
      }
     },
     "auth_ref": [
      "r1061",
      "r1089"
     ]
    },
    "srt_ScheduleOfCondensedIncomeStatementTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfCondensedIncomeStatementTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Condensed Statements of Income",
        "label": "Condensed Income Statement [Table Text Block]",
        "documentation": "Tabular disclosure of condensed income statement, including, but not limited to, income statements of consolidated entities and consolidation eliminations."
       }
      }
     },
     "auth_ref": [
      "r1061",
      "r1089"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Deferred Tax Assets and Liabilities",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r206"
     ]
    },
    "cofs_ScheduleOfDepositsOutstandingTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ScheduleOfDepositsOutstandingTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Deposit Balances",
        "documentation": "Tabular disclosure of components of deposit liabilities.",
        "label": "Schedule of Deposits Outstanding [Table Text Block]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Derivatives Instruments in Balance Sheet Location",
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "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": [
      "r124"
     ]
    },
    "us-gaap_ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativesInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Location and Amount of Gain (Loss) in Income on Fair Value and Cash Flow Hedging Relationships",
        "label": "Schedule of Derivatives Instruments Statements of Financial Performance and Financial Position, Location [Table Text Block]",
        "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": [
      "r121"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Basic Earnings Per Share and Diluted Earnings Per Share",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "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": [
      "r1095"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Effective Income Tax Rate Reconciliation",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r205"
     ]
    },
    "us-gaap_ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsScheduleOfFederalHomeLoanBankAdvancesParentheticalsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Federal Home Loan Bank Advances, by Branch of FHLB Bank [Table]",
        "documentation": "Represents the total amount of advances due to the Federal Home Loan Bank, by Branch, as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r162",
      "r223",
      "r244"
     ]
    },
    "us-gaap_ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFederalHomeLoanBankAdvancesByBranchOfFHLBBankTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Federal Home Loan Bank Advances",
        "label": "Schedule of Federal Home Loan Bank, Advances, by Branch of FHLB Bank [Table Text Block]",
        "documentation": "Tabular disclosure of advances by federal home loan bank by branch."
       }
      }
     },
     "auth_ref": [
      "r162",
      "r223",
      "r244"
     ]
    },
    "us-gaap_ScheduleOfFinancialInstrumentsOwnedAndPledgedAsCollateralTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancialInstrumentsOwnedAndPledgedAsCollateralTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Financial Instruments Owned and Pledged as Collateral",
        "label": "Schedule of Financial Instruments Owned and Pledged as Collateral [Table Text Block]",
        "documentation": "Tabular disclosure of financial instruments held by the entity for its own account for trading or investment purposes that are carried at fair value and pledged to counterparties as collateral for financing transactions. Description may include equity, fixed income, debt or other securities."
       }
      }
     },
     "auth_ref": [
      "r212",
      "r1286"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivableTroubledDebtRestructuringsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivableTroubledDebtRestructuringsTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails",
      "http://www.choiceone.bank/20231231/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": [
      "r417",
      "r418",
      "r419",
      "r420",
      "r993"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivablesNonAccrualStatusTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonaccrual Loans by Loan Category",
        "label": "Financing Receivable, Nonaccrual [Table Text Block]",
        "documentation": "Tabular disclosure of financing receivable on nonaccrual status."
       }
      }
     },
     "auth_ref": [
      "r80",
      "r493"
     ]
    },
    "us-gaap_ScheduleOfFinancingReceivablesPastDueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFinancingReceivablesPastDueTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1001",
      "r1146"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfAcquiredIntangibleAssetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfEstimatedAmortizationExpenseDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsScheduleOfGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Goodwill [Table]",
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons."
       }
      }
     },
     "auth_ref": [
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r1003"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r1003",
      "r1149",
      "r1150",
      "r1151",
      "r1152",
      "r1153",
      "r1154",
      "r1155",
      "r1156",
      "r1157",
      "r1158",
      "r1159"
     ]
    },
    "us-gaap_ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfNetInvestmentHedgesStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Cumulative Basis Adjustments on Hedged Items Designated as Fair Value Hedges and Related Amortized Cost",
        "terseLabel": "Schedule of Effect of Fair Value and Cash flow Hedge Accounting on Consolidated Statements of Operations",
        "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": [
      "r128"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentRentCommitmentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosurePremisesAndEquipmentScheduleOfPremisesAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_ScheduleOfRealizedGainLossTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRealizedGainLossTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Realized Gain (Loss)",
        "label": "Schedule of Realized Gain (Loss) [Table Text Block]",
        "documentation": "Tabular disclosure of the proceeds from sales of available-for-sale securities and the gross realized gains and gross realized losses that have been included in earnings as a result of those sales."
       }
      }
     },
     "auth_ref": [
      "r1136"
     ]
    },
    "us-gaap_ScheduleOfRelatedPartyTransactionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRelatedPartyTransactionsTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRelatedPartyTransactionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Related Party Transactions",
        "label": "Schedule of Related Party Transactions [Table Text Block]",
        "documentation": "Tabular disclosure of related party transactions. Examples of related party transactions include, but are not limited to, transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners and (d) affiliates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfServicingAssetsAtAmortizedValueTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfServicingAssetsAtAmortizedValueTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Activity for Loan Servicing Rights",
        "label": "Servicing Asset at Amortized Cost [Table Text Block]",
        "documentation": "Tabular disclosure of activity in the balance of servicing assets subsequently measured at amortized cost. Includes, but is not limited to, beginning and ending balances, additions, disposals, and amortization."
       }
      }
     },
     "auth_ref": [
      "r1288"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r604",
      "r606",
      "r609",
      "r610",
      "r611",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Activity for Stock Units Outstanding",
        "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": [
      "r101"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Stock Options Outstanding By Exercise Price Range",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Table Text Block]",
        "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Stock Option Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r101"
     ]
    },
    "us-gaap_ScheduleOfTradingSecuritiesAndOtherTradingAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfTradingSecuritiesAndOtherTradingAssetsLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/DisclosureSecuritiesCarryingAmountOfSecuritiesPledgedAsCollateralDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/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/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Secured Overnight Financing Rate (SOFR) Overnight Index Swap Rate [Member]",
        "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": [
      "r1268"
     ]
    },
    "cofs_SecuritiesAvailableForSaleMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SecuritiesAvailableForSaleMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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/20231231/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": [
      "r1033"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r1036"
     ]
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Segments",
        "label": "Segment Reporting, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r410",
      "r992"
     ]
    },
    "cofs_ServicingAssetAtAmortizedCostCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ServicingAssetAtAmortizedCostCapitalized",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityForLoanServicingRightsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount capitalized for contract to service financial assets under which the benefits of servicing are expected to more than adequately compensate the servicer.",
        "label": "Capitalized"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ServicingAssetAtAmortizedValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetAtAmortizedValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityForLoanServicingRightsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Servicing Asset at Amortized Cost",
        "periodEndLabel": "Balance, end of year",
        "periodStartLabel": "Balance, beginning of year",
        "documentation": "Amortized amount of contract to service financial assets under which the benefits of servicing are expected to more than adequately compensate the servicer."
       }
      }
     },
     "auth_ref": [
      "r790",
      "r797",
      "r1045"
     ]
    },
    "us-gaap_ServicingAssetAtAmortizedValueAmortization1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetAtAmortizedValueAmortization1",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityForLoanServicingRightsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Servicing Asset at Amortized Cost, Amortization",
        "negatedLabel": "Amortization",
        "documentation": "Amount of amortization of contract to service financial assets under which the benefits of servicing are expected to more than adequately compensate the servicer."
       }
      }
     },
     "auth_ref": [
      "r800"
     ]
    },
    "us-gaap_ServicingAssetAtAmortizedValueValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetAtAmortizedValueValuationAllowance",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingScheduleOfActivityForLoanServicingRightsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Market valuation allowance change",
        "label": "Servicing Asset at Amortized Cost, Increase (Decrease) for Valuation Allowance Adjustment",
        "documentation": "Amount of increase (decrease) in the amortized amount from a decrease (increase) in the valuation allowance applied to the servicing asset for a contract to service financial assets under which the benefits of servicing are expected to more than adequately compensate the servicer."
       }
      }
     },
     "auth_ref": [
      "r801"
     ]
    },
    "us-gaap_ServicingAssetAtFairValueAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetAtFairValueAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFinancialInstrumentsSummaryOfFinancialInstrumentsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Mortgage loan servicing rights",
        "periodEndLabel": "Servicing Asset at Fair Value, Amount, Ending Balance",
        "periodStartLabel": "Servicing Asset at Fair Value, Amount, Beginning Balance",
        "label": "Servicing Asset at Fair Value, Amount",
        "terseLabel": "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": [
      "r790",
      "r791",
      "r792",
      "r793"
     ]
    },
    "us-gaap_ServicingAssetsAndServicingLiabilitiesAtFairValueAssumptionsUsedToEstimateFairValueDiscountRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetsAndServicingLiabilitiesAtFairValueAssumptionsUsedToEstimateFairValueDiscountRate",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Servicing Assets and Servicing Liabilities at Fair Value, Assumptions Used to Estimate Fair Value, Discount Rate",
        "terseLabel": "Servicing Assets and Servicing Liabilities at Fair Value, Assumptions Used to Estimate Fair Value, Discount Rate",
        "documentation": "Discount rate used to estimate the fair value of servicing assets and servicing liabilities."
       }
      }
     },
     "auth_ref": [
      "r1022"
     ]
    },
    "us-gaap_ServicingAssetsAndServicingLiabilitiesAtFairValueAssumptionsUsedToEstimateFairValuePrepaymentSpeed": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ServicingAssetsAndServicingLiabilitiesAtFairValueAssumptionsUsedToEstimateFairValuePrepaymentSpeed",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Servicing Assets and Servicing Liabilities at Fair Value, Assumptions Used to Estimate Fair Value, Prepayment Speed",
        "terseLabel": "Servicing Assets and Servicing Liabilities at Fair Value, Assumptions Used to Estimate Fair Value, Prepayment Speed",
        "documentation": "Estimated rate of prepayments of principal on servicing assets and servicing liabilities."
       }
      }
     },
     "auth_ref": [
      "r1022"
     ]
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Payment Arrangement, Noncash Expense, Total",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "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": [
      "r9"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation award vesting period",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r1016"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedLabel": "Forfeited (in shares)",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r626"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited, weighted average grant date fair value (in dollars per share)",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r626"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "terseLabel": "Granted (in shares)",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r624"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Granted, weighted average grant date fair value (in dollars per share)",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r624"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, equity instruments other than options, nonvested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Outstanding, ending balance (in shares)",
        "periodStartLabel": "Outstanding at January 1, 2022 (in shares)",
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r621",
      "r622"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Outstanding, ending balance, weighted average grant date fair value (in dollars per share)",
        "periodStartLabel": "Outstanding, weighted average grant date fair value (in dollars per share)",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r621",
      "r622"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Vested (in shares)",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r625"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Vested, weighted average grant date fair value (in dollars per share)",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r625"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [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": [
      "r604",
      "r606",
      "r609",
      "r610",
      "r611",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation shares authorized",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation shares available for grant",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercisable (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan."
       }
      }
     },
     "auth_ref": [
      "r615"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation exercisable, weighted average exercise price",
        "verboseLabel": "Options exercisable, weighted average exercise price (in dollars per share)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r615"
     ]
    },
    "cofs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the weighted average grant-date fair value of exercisable options.",
        "label": "Options exercisable at December 31, 2022 (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the weighted average grant-date fair value of options exercised during the period.",
        "label": "Options exercised (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Total",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "negatedLabel": "Options forfeited or expired (in shares)",
        "documentation": "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired."
       }
      }
     },
     "auth_ref": [
      "r1233"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options granted (in shares)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r617"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation , options outstanding, intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Options outstanding, end of period (in shares)",
        "periodStartLabel": "Options outstanding, beginning of period (in shares)",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r613",
      "r614"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, weighted average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "periodEndLabel": "Options outstanding, end of period, weighted average exercise price (in dollars per share)",
        "periodStartLabel": "Options outstanding, beginning of period, weighted average exercise price (in dollars per share)",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r613",
      "r614"
     ]
    },
    "cofs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant date fair value of options outstanding.",
        "label": "cofs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Options outstanding, end of year (in dollars per share)",
        "periodStartLabel": "Options outstanding at January 1, 2022 (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationSummaryOfActivityForStockUnitsOutstandingDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Award Types",
        "label": "All Award Types",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r609",
      "r610",
      "r611",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options exercised weighted average exercise price (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r618"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options forfeited or expired weighted average exercise price (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r619"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options granted, weighted average exercise price (in dollars per share)",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r617"
     ]
    },
    "us-gaap_ShareBasedCompensationAwardTrancheOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAwardTrancheOneMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Tranche One [Member]",
        "documentation": "First portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationAwardTrancheThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAwardTrancheThreeMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Tranche Three [Member]",
        "documentation": "Third portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationAwardTrancheTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationAwardTrancheTwoMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Tranche Two [Member]",
        "documentation": "Second portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost."
       }
      }
     },
     "auth_ref": [
      "r603",
      "r612",
      "r631",
      "r632",
      "r633",
      "r634",
      "r637",
      "r646",
      "r647",
      "r648",
      "r649"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise Price Range [Axis]",
        "documentation": "Information by range of option prices pertaining to options granted."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise Price Range [Domain]",
        "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r105"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable, Ending Balance",
        "periodStartLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable, Beginning Balance",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable",
        "terseLabel": "Number of options exercisable at year-end (in shares)",
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied."
       }
      }
     },
     "auth_ref": [
      "r103"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Outstanding, Ending Balance",
        "periodStartLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Outstanding, Beginning Balance",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Shares Outstanding",
        "terseLabel": "Number of options outstanding at year-end (in shares)",
        "documentation": "The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_SharePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharePrice",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share price",
        "label": "Share Price",
        "documentation": "Price of a single share of a number of saleable stocks of a company."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, vesting rights, percentage",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage",
        "documentation": "Percentage of vesting of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1227"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, equity instruments other than options, aggregate intrinsic value, outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Outstanding",
        "documentation": "Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodGrantDateFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, equity instruments other than options, grant date fair value",
        "documentation": "The fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "cofs_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodGrantDateFairValue"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, exercisable, weighted average remaining contractual term",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r100"
     ]
    },
    "cofs_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsForfeitedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsForfeitedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the weighted average grant-date fair value of options foreited during the period.",
        "label": "Options forfeited or expired (in dollars per share)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based compensation, weighted average remaining contractual term",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r204"
     ]
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Outstanding, Weighted Average Exercise Price, Ending Balance",
        "periodStartLabel": "Share-Based Payment Arrangement, Option, Exercise Price Range, Outstanding, Weighted Average Exercise Price, Beginning Balance",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Outstanding, Weighted Average Exercise Price",
        "terseLabel": "Exercise price of stock options (in dollars per share)",
        "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionsOutstandingByExercisePriceRangeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range, Outstanding, Weighted Average Remaining Contractual Term",
        "terseLabel": "Average remaining contractual life (Year)",
        "documentation": "Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r204"
     ]
    },
    "cofs_SharebasedPaymentArrangementTrancheFourMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SharebasedPaymentArrangementTrancheFourMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fourth portion of award under share-based payment arrangement differentiated by vesting feature, including, but not limited to, performance measure or service period.",
        "label": "Share-based Payment Arrangement, Tranche Four [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Significant Accounting Policies",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r189",
      "r348"
     ]
    },
    "us-gaap_SpecialMentionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SpecialMentionMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Special mention",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r43",
      "r299",
      "r330",
      "r331",
      "r332",
      "r357",
      "r358",
      "r359",
      "r362",
      "r370",
      "r372",
      "r395",
      "r473",
      "r479",
      "r574",
      "r643",
      "r644",
      "r645",
      "r666",
      "r667",
      "r696",
      "r698",
      "r699",
      "r700",
      "r701",
      "r703",
      "r713",
      "r741",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r765",
      "r866",
      "r867",
      "r868",
      "r885",
      "r948"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-parentheticals",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "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": [
      "r357",
      "r358",
      "r359",
      "r395",
      "r809",
      "r876",
      "r887",
      "r898",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r906",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r924",
      "r926",
      "r928",
      "r929",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r948",
      "r1026"
     ]
    },
    "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/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfCashFlowsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedStatementsOfIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesScheduleOfCumulativeBasisAdjustmentsOnHedgedItemsDesignatedAsFairValueHedgesAndRelatedAmortizedC",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapital1",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAccumulatedOtherComprehensiveIncomeDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity-parentheticals",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "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": [
      "r357",
      "r358",
      "r359",
      "r395",
      "r809",
      "r876",
      "r887",
      "r898",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r906",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r924",
      "r926",
      "r928",
      "r929",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r948",
      "r1026"
     ]
    },
    "srt_StatisticalDisclosureForBanksAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatisticalDisclosureForBanksAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Disclosure for Banks [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatutoryAccountingPracticesStatutoryAmountAvailableForDividendPaymentsWithoutRegulatoryApproval": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatutoryAccountingPracticesStatutoryAmountAvailableForDividendPaymentsWithoutRegulatoryApproval",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statutory Accounting Practices, Statutory Amount Available for Dividend Payments without Regulatory Approval",
        "terseLabel": "Statutory Accounting Practices, Statutory Amount Available for Dividend Payments without Regulatory Approval",
        "documentation": "Amount of dividends that can be declared or paid without approval of regulatory agency."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesAcquisitions": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesAcquisitions",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock issued during period, shares, acquisitions (in shares)",
        "verboseLabel": "Merger with Community Shores Bank Corporation (in shares)",
        "label": "Stock Issued During Period, Shares, Acquisitions",
        "documentation": "Number of shares of stock issued during the period pursuant to acquisitions."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r172",
      "r203"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r171",
      "r172",
      "r203"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares issued (in shares)",
        "label": "Stock Issued During Period, Shares, New Issues",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r171",
      "r172",
      "r203",
      "r878",
      "r948",
      "r968"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "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": [
      "r23",
      "r203"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationStockOptionActivityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "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",
        "negatedLabel": "Options exercised (in shares)",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r171",
      "r172",
      "r203",
      "r618"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueAcquisitions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueAcquisitions",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Merger with Community Shores Bank Corporation",
        "label": "Stock Issued During Period, Value, Acquisitions",
        "documentation": "Value of stock issued pursuant to acquisitions during the period."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r43",
      "r203"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares issued",
        "label": "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": [
      "r23",
      "r171",
      "r172",
      "r203",
      "r885",
      "r948",
      "r968",
      "r1031"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r23",
      "r171",
      "r172",
      "r203"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r43",
      "r203"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Repurchased During Period, Shares",
        "negatedLabel": "Shares repurchased (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": [
      "r23",
      "r171",
      "r172",
      "r203",
      "r879",
      "r948",
      "r969"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Repurchased During Period, Value",
        "negatedLabel": "Shares repurchased",
        "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": [
      "r23",
      "r171",
      "r172",
      "r203",
      "r885",
      "r948",
      "r969",
      "r1031"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-changes-in-shareholders-equity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity, Attributable to Parent",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "totalLabel": "Total shareholders\u2019 equity",
        "verboseLabel": "Shareholders' equity",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r175",
      "r176",
      "r193",
      "r908",
      "r925",
      "r949",
      "r950",
      "r1020",
      "r1032",
      "r1086",
      "r1141",
      "r1272",
      "r1305"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders' Equity",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubordinatedBorrowingLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedBorrowingLineItems",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subordinated Borrowing [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_SubordinatedBorrowingTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedBorrowingTable",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subordinated Borrowing [Table]",
        "documentation": "Schedule of borrowings under subordinated debt agreements that qualify as available in computing net capital under SEC's uniform net capital rule, including restrictive covenants, collateral, interest rates and due dates, amounts due by date and amount owed in total."
       }
      }
     },
     "auth_ref": [
      "r244"
     ]
    },
    "us-gaap_SubordinatedBorrowingsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedBorrowingsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Subordinated Borrowings [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubordinatedBorrowingsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedBorrowingsDisclosureTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebentures1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subordinated Debentures",
        "label": "Subordinated Borrowings Disclosure [Text Block]",
        "documentation": "The entire disclosure for borrowings under subordinated debt agreements that qualify as available in computing net capital under SEC's uniform net capital rule, including restrictive covenants, collateral, interest rates and due dates, amounts due by date and amount owed in total."
       }
      }
     },
     "auth_ref": [
      "r244"
     ]
    },
    "us-gaap_SubordinatedDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedDebt",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-balance-sheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subordinated debentures (Note 11)",
        "periodEndLabel": "Subordinated Debt, Ending Balance",
        "periodStartLabel": "Subordinated Debt, Beginning Balance",
        "totalLabel": "Subordinated Debt, Total",
        "label": "Subordinated Debt",
        "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": [
      "r37",
      "r167",
      "r220",
      "r1297"
     ]
    },
    "us-gaap_SubordinatedDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubordinatedDebtMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subordinated Debt [Member]",
        "documentation": "This element represents domestic or foreign subordinated debt. Subordinated debt has a lower priority of repayment in liquidation of the entity's assets."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_SubordinatedNotesDue2031Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SubordinatedNotesDue2031Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to debt.",
        "label": "Subordinated Notes Due 2031 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r748",
      "r772"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r748",
      "r772"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r748",
      "r772"
     ]
    },
    "us-gaap_SubstandardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubstandardMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Substandard",
        "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": [
      "r77",
      "r1147"
     ]
    },
    "cofs_SummaryOfAmortizedCostBasisOfLoansTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "SummaryOfAmortizedCostBasisOfLoansTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Amortized Cost Basis of Loans",
        "label": "Summary of Amortized Cost Basis of Loans [Table Text Block]",
        "documentation": "Summary 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/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "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/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestExpense",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Supplies and postage",
        "totalLabel": "Supplies and Postage Expense, Total",
        "label": "Supplies and Postage Expense",
        "documentation": "The aggregate amount of expenses directly related to the supplies and postage."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_TableTextBlock": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Table Text Block [Abstract]",
        "terseLabel": "Notes Tables"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxPeriodAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxPeriodAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Period [Axis]",
        "documentation": "Information about the period subject to enacted tax laws."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxPeriodDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxPeriodDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureIncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tax Period [Domain]",
        "documentation": "Identified tax period."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TermCommitmentsToExtendCredit": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TermCommitmentsToExtendCredit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maturity term of commitments to extend credit.",
        "label": "cofs_TermCommitmentsToExtendCredit",
        "terseLabel": "Term Commitments to Extend Credit (Year)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_The34015PercentPayFixedSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "The34015PercentPayFixedSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "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_The401kPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "The401kPlanMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEmployeeBenefitPlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to the 401(k).",
        "label": "The 401(k) Plan [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TheStockIncentivePlanOf2022Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TheStockIncentivePlanOf2022Member",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to the \"Stock Incentive Plan of 2022\".",
        "label": "The Stock Incentive Plan Of 2022 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ThreePointFourZeroOneFivePercentPayFixedSwapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ThreePointFourZeroOneFivePercentPayFixedSwapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "3.4030 Percent Pay Fixed Swap Agreement [Member]",
        "label": "Three Point Four Zero One Five Percent Pay Fixed Swap Agreement [Member]",
        "documentation": "Three point four zero five percent pay fixed swap agreement."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_ThreeSofrCapAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ThreeSofrCapAgreementMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Three SOFR Cap Agreement.",
        "label": "Three SOFR Cap Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TierOneLeverageCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapital",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets)",
        "label": "Banking Regulation, Tier 1 Leverage Capital, Actual",
        "documentation": "Amount of Tier 1 leverage capital as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneLeverageCapitalRequiredForCapitalAdequacy": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapitalRequiredForCapitalAdequacy",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets), Minimum Required for Capital Adequacy Purposes",
        "label": "Banking Regulation, Tier 1 Leverage Capital, Capital Adequacy, Minimum",
        "documentation": "Amount of minimum Tier 1 leverage capital required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_TierOneLeverageCapitalRequiredForCapitalAdequacyToAverageAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapitalRequiredForCapitalAdequacyToAverageAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets), Minimum Required for Capital Adequacy Purposes, Ratio",
        "label": "Banking Regulation, Tier 1 Leverage Capital Ratio, Capital Adequacy, Minimum",
        "documentation": "Ratio of minimum Tier 1 leverage capital to average assets required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_TierOneLeverageCapitalRequiredToBeWellCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapitalRequiredToBeWellCapitalized",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations",
        "label": "Banking Regulation, Tier 1 Leverage Capital, Well Capitalized, Minimum",
        "documentation": "Amount of minimum Tier 1 leverage capital categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneLeverageCapitalRequiredToBeWellCapitalizedToAverageAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapitalRequiredToBeWellCapitalizedToAverageAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations, Ratio",
        "label": "Banking Regulation, Tier 1 Leverage Capital Ratio, Well Capitalized, Minimum",
        "documentation": "Ratio of minimum Tier 1 leverage capital to average assets categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneLeverageCapitalToAverageAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneLeverageCapitalToAverageAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to average assets), Ratio",
        "label": "Banking Regulation, Tier 1 Leverage Capital Ratio, Actual",
        "documentation": "Ratio of Tier 1 capital to average assets as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneRiskBasedCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapital",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets)",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital, Actual",
        "documentation": "Amount of Tier 1 risk-based capital as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneRiskBasedCapitalRequiredForCapitalAdequacy": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapitalRequiredForCapitalAdequacy",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets), Minimum Required for Capital Adequacy Purposes",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital, Capital Adequacy, Minimum",
        "documentation": "Amount of minimum Tier 1 risk-based capital required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_TierOneRiskBasedCapitalRequiredForCapitalAdequacyToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapitalRequiredForCapitalAdequacyToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets), Minimum Required for Capital Adequacy Purposes, Ratio",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital Ratio, Capital Adequacy, Minimum",
        "documentation": "Ratio of minimum Tier 1 risk-based capital to risk-weighted assets required for capital adequacy as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833",
      "r837"
     ]
    },
    "us-gaap_TierOneRiskBasedCapitalRequiredToBeWellCapitalized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapitalRequiredToBeWellCapitalized",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital, Well Capitalized, Minimum",
        "documentation": "Amount of minimum Tier 1 risk-based capital categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneRiskBasedCapitalRequiredToBeWellCapitalizedToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapitalRequiredToBeWellCapitalizedToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets), Minimum Required to be Well Capitalized Under Prompt Corrective Action Regulations, Ratio",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital Ratio, Well Capitalized, Minimum",
        "documentation": "Ratio of minimum Tier 1 risk-based capital to risk-weighted assets categorized as well capitalized as defined by regulatory framework for prompt corrective action."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TierOneRiskBasedCapitalToRiskWeightedAssets": {
     "xbrltype": "pureItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TierOneRiskBasedCapitalToRiskWeightedAssets",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureRegulatoryCapitalRegulatoryCapitalDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tier 1 capital (to risk weighted assets), Ratio",
        "label": "Banking Regulation, Tier 1 Risk-Based Capital Ratio, Actual",
        "documentation": "Ratio of Tier 1 risk-based capital to risk-weighted assets as defined by regulatory framework."
       }
      }
     },
     "auth_ref": [
      "r833"
     ]
    },
    "us-gaap_TimeDepositMaturitiesAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Time Deposit Maturities, after Year Five",
        "documentation": "Amount of time deposit maturing after fifth fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Maturities of Certificates of Deposit",
        "label": "Time Deposit Maturities [Table Text Block]",
        "documentation": "Tabular disclosure of time deposit liability maturities."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesYearFive",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Time Deposit Maturities, Year Five",
        "documentation": "Amount of time deposit maturing in fifth fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesYearFour",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Time Deposit Maturities, Year Four",
        "documentation": "Amount of time deposit maturing in fourth fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesYearOne": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesYearOne",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Time Deposit Maturities, Year One",
        "documentation": "Amount of time deposit maturing in next fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesYearThree",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Time Deposit Maturities, Year Three",
        "documentation": "Amount of time deposit maturing in third fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDepositMaturitiesYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDepositMaturitiesYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": "us-gaap_TimeDeposits",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Time Deposit Maturities, Year Two",
        "documentation": "Amount of time deposit maturing in second fiscal year following current fiscal year. Time deposit includes, but is not limited to, certificate of deposit. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "us-gaap_TimeDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TimeDeposits",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsMaturitiesOfCertificateOfDepositDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Time Deposits",
        "totalLabel": "Total",
        "documentation": "Amount of time deposit liabilities, including certificates of deposit."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r153"
     ]
    },
    "cofs_TimeDeposits250000OrMore": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TimeDeposits250000OrMore",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDepositsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Time deposits, $250,000 or more",
        "documentation": "Amount of time deposit liabilities, including certificates of deposit, in denominations of $250,000 or more.",
        "label": "cofs_TimeDeposits250000OrMore"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TradingSecuritiesAndCertainTradingAssetsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradingSecuritiesAndCertainTradingAssetsTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Gross Unrealized Gains and (Losses)",
        "label": "Debt Securities, Trading, and Equity Securities, FV-NI [Table Text Block]",
        "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/20231231/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_TransferOfOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransferOfOtherRealEstate",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Transfers from loans",
        "label": "Real Estate Owned, Transfer from Real Estate Owned",
        "documentation": "Value transferred out of real estate owned (REO) in noncash transactions."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r60",
      "r61"
     ]
    },
    "us-gaap_TransferToOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransferToOtherRealEstate",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-cash-flows"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loans transferred to other real estate owned",
        "label": "Real Estate Owned, Transfer to Real Estate Owned",
        "documentation": "Value transferred from mortgage loans to real estate owned (REO) in noncash transactions."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r60",
      "r61"
     ]
    },
    "us-gaap_TransfersAndServicingOfFinancialAssetsServicingOfFinancialAssetsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransfersAndServicingOfFinancialAssetsServicingOfFinancialAssetsPolicy",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loan Servicing Rights",
        "label": "Transfers and Servicing of Financial Assets, Servicing of Financial Assets, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for servicing assets and liabilities including, but not necessarily limited to: (a) how a servicing asset or servicing liability is initially recognized and measured, (b) management's basis for determining its classes of servicing assets and servicing liabilities, (c) where contractually specified fees, late fees or ancillary fees are reported in the statement of income, (d) how the entity subsequently measures each class of servicing assets and servicing liabilities (that is, by using the amortization method or fair value method), and the methodology and significant assumptions used to value such servicing, (e) for those classes subsequently measured using the amortization method, where changes in the carrying amount are reported in the statement of income and how such servicing assets and liabilities are evaluated for impairment, and (f) for those classes subsequently measured at fair value, where changes in the fair value are reported in the statement of income."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r149",
      "r150"
     ]
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesContractualMaturitiesDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "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": [
      "r435",
      "r436",
      "r437",
      "r438",
      "r439",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r452",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r570",
      "r573",
      "r704",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r788",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r856",
      "r1050",
      "r1051",
      "r1052",
      "r1053",
      "r1054",
      "r1055",
      "r1056",
      "r1136",
      "r1137",
      "r1138",
      "r1139"
     ]
    },
    "us-gaap_TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TroubledDebtRestructuringsOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Trouble Debt Restructurings (TDRs)",
        "label": "Financing Receivable, Modified [Table Text Block]",
        "documentation": "Tabular disclosure of financing receivable modified for debtor experiencing financial difficulty."
       }
      }
     },
     "auth_ref": [
      "r993",
      "r1098",
      "r1099",
      "r1100",
      "r1101"
     ]
    },
    "cofs_TroubledLoanModificationsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TroubledLoanModificationsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesSummaryOfAmortizedCostBasisLoansModifiedToBorrowersExperiencingOnFinancingReceivableDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Troubled Loan Modifications [Member]",
        "label": "Troubled Loan Modifications [Member]",
        "documentation": "Troubled Loan Modifications."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustIncome",
     "crdr": "credit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income": {
       "parentTag": "us-gaap_NoninterestIncome",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/statement-consolidated-statements-of-income"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of trust income.",
        "label": "Trust income"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustPreferredSecuritiesAfterMergerFairValueAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustPreferredSecuritiesAfterMergerFairValueAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trust preferred securities after merger fair value adjustments",
        "label": "Trust Preferred Securities After Merger Fair Value Adjustments",
        "documentation": "Trust preferred securities after merger fair value adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustPreferredSecuritiesBeforeMergerFairValueAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustPreferredSecuritiesBeforeMergerFairValueAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trust preferred securities before merger fair value adjustments",
        "label": "Trust Preferred Securities Before Merger Fair Value Adjustments",
        "documentation": "Trust preferred securities before merger fair value adjustments."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustPreferredSecuritiesFairValueAdjustmentValueAmortizationPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustPreferredSecuritiesFairValueAdjustmentValueAmortizationPeriod",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trust preferred securities fair value adjustment value amortization period",
        "label": "Trust preferred Securities Fair Value Adjustment Value Amortization Period",
        "documentation": "Trust preferred securities fair value adjustment value amortization period."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustPreferredSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustPreferredSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureCondensedFinancialStatementsOfParentCompanyCondensedBalanceSheetsDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information related to trust preferred securities.",
        "label": "Trust Preferred Securities [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_TrustPreferredSecuritiesValueAuthorized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "TrustPreferredSecuritiesValueAuthorized",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trust Preferred Securities Value",
        "label": "Trust Preferred Securities Value Authorized",
        "documentation": "Trust Preferred Securities Value Authorized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfAdoptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfAdoptionMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Domain]",
        "documentation": "Amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r297",
      "r298",
      "r299",
      "r300",
      "r301",
      "r361",
      "r362",
      "r363",
      "r364",
      "r373",
      "r428",
      "r429",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r539",
      "r643",
      "r644",
      "r645",
      "r664",
      "r665",
      "r666",
      "r667",
      "r677",
      "r678",
      "r679",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r731",
      "r732",
      "r737",
      "r738",
      "r739",
      "r740",
      "r749",
      "r750",
      "r753",
      "r754",
      "r755",
      "r756",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r811",
      "r812",
      "r813",
      "r864",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r870",
      "r871",
      "r872",
      "r873",
      "r874",
      "r875"
     ]
    },
    "us-gaap_USGovernmentAgenciesDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USGovernmentAgenciesDebtSecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "U.S. Government and Federal Agency [Member]",
        "label": "US Government Agencies Debt Securities [Member]",
        "documentation": "Debentures, notes, and other debt securities issued by US government agencies, for example, but not limited to, Government National Mortgage Association (GNMA or Ginnie Mae). Excludes US treasury securities and debt issued by government-sponsored Enterprises (GSEs), for example, but is not limited to, Federal Home Loan Mortgage Corporation (FHLMC or Freddie Mac), Federal National Mortgage Association (FNMA or Fannie Mae), and the Federal Home Loan Bank (FHLB)."
       }
      }
     },
     "auth_ref": [
      "r988",
      "r1010",
      "r1290"
     ]
    },
    "us-gaap_USStatesAndPoliticalSubdivisionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USStatesAndPoliticalSubdivisionsMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State and Municipal [Member]",
        "label": "US States and Political Subdivisions Debt Securities [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": [
      "r1010",
      "r1298"
     ]
    },
    "us-gaap_USTreasuryAndGovernmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasuryAndGovernmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityHeldtomaturityDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfSecuritiesAvailableForSaleAndTheRelatedUnrealizedGainsAndLossesRecognizedInAccumulatedComprehensiveIncomeD",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "U.S. Government and Federal Agency [Member]",
        "label": "US Treasury and Government [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": [
      "r823",
      "r1010",
      "r1298"
     ]
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasurySecuritiesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureFairValueMeasurementsScheduleOfAssetsAndLiabilitiesMeasuredAtFairValueDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesFairValueOfDebtSecurityAvailableforsaleDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesSecuritiesWithUnrealizedLossesAggregatedByInvestmentCategoryAndTimeWithUnrealizedLossPositionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "US Treasury and Government [Member]",
        "terseLabel": "U.S. Treasury Notes and Bonds [Member]",
        "label": "US Treasury Securities [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": [
      "r988",
      "r1010",
      "r1012",
      "r1290"
     ]
    },
    "us-gaap_UnallocatedFinancingReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnallocatedFinancingReceivablesMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesAllowanceForCreditLossesAndBalancesInLoanPortfolioDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unallocated Financing Receivables [Member]",
        "label": "Unallocated Financing Receivables [Member]",
        "documentation": "Financing receivables that have not been allocated to a portfolio segment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnfundedLoanCommitmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnfundedLoanCommitmentMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unfunded Loan Commitment [Member]",
        "documentation": "Undisbursed funds of a credit facility in which the borrower may draw upon."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnlikelyToBeCollectedFinancingReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnlikelyToBeCollectedFinancingReceivableMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/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": [
      "r77",
      "r1147"
     ]
    },
    "cofs_UnratedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "UnratedMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSecuritiesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Unrated.",
        "label": "Unrated [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_UnusedLinesOfCreditAndLettersOfCreditFixedRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "UnusedLinesOfCreditAndLettersOfCreditFixedRate",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesScheduleOfFinancialInstrumentsWithOffbalanceSheetRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the amount of cash required to fund unused lines and letters of credt at stated interest rates.",
        "label": "Unused lines of credit and letters of credit - fixed rate"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_UnusedLinesOfCreditAndLettersOfCreditVariableRate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "UnusedLinesOfCreditAndLettersOfCreditVariableRate",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOffbalanceSheetActivitiesScheduleOfFinancialInstrumentsWithOffbalanceSheetRiskDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the amount of cash required to fund unused lines and letters of credt at variable interest rates.",
        "label": "Unused lines of credit and letters of credit - variable rate"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "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": [
      "r64",
      "r65",
      "r66",
      "r270",
      "r271",
      "r273",
      "r274"
     ]
    },
    "cofs_ValleyRidgeFinancialCorpMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "ValleyRidgeFinancialCorpMember",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureGoodwillAndAcquiredIntangibleAssetsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to Valley Ridge Financial Corp.",
        "label": "Valley Ridge Financial Corp. [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ValuationAllowanceForImpairmentOfRecognizedServicingAssetsBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowanceForImpairmentOfRecognizedServicingAssetsBalance",
     "crdr": "credit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureMortgageBankingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Valuation Allowance for Impairment of Recognized Servicing Assets, Balance, Ending Balance",
        "periodStartLabel": "Valuation Allowance for Impairment of Recognized Servicing Assets, Balance, Beginning Balance",
        "label": "Valuation Allowance for Impairment of Recognized Servicing Assets, Balance",
        "terseLabel": "Valuation Allowance for Impairment of Recognized Servicing Assets, Balance, Ending Balance",
        "documentation": "Reflects the estimated amount of impairment as of the balance sheet date of recognized servicing assets that are being amortized in proportion to and over the period of estimated net servicing income or loss."
       }
      }
     },
     "auth_ref": [
      "r805"
     ]
    },
    "us-gaap_VariableRateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableRateAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "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/20231231/taxonomy/role/DisclosureBorrowingsAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureDerivativesAndHedgingActivitiesAdditionalInformationDetails",
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureSubordinatedDebenturesAdditionalInformationDetails"
     ],
     "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_VestingAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VestingAxis",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting [Axis]",
        "documentation": "Information by vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1227",
      "r1228",
      "r1229",
      "r1230",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1235",
      "r1236",
      "r1237",
      "r1238",
      "r1239",
      "r1240",
      "r1241",
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_VestingDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VestingDomain",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureStockBasedCompensationAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting [Domain]",
        "documentation": "Vesting schedule of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1227",
      "r1228",
      "r1229",
      "r1230",
      "r1231",
      "r1232",
      "r1233",
      "r1234",
      "r1235",
      "r1236",
      "r1237",
      "r1238",
      "r1239",
      "r1240",
      "r1241",
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average common shares outstanding and potentially dilutive shares (in shares)",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Diluted, Total",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "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": [
      "r377",
      "r390"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureEarningsPerShareScheduleOfBasicEarningsPerShareAndDilutedEarningsPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average common shares outstanding (in shares)",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "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": [
      "r375",
      "r390"
     ]
    },
    "cofs_WriteDownsOfOtherRealEstate": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "WriteDownsOfOtherRealEstate",
     "crdr": "debit",
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureOtherRealEstateOwnedActivityWithinOtherRealEstateOwnedDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Write downs of ORE",
        "documentation": "Represents the amount of write down for other real estate.",
        "label": "Write downs of ORE",
        "negatedLabel": "Write-downs"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_WriteoffOfNotesReceivableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "WriteoffOfNotesReceivableGross",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Current year-to-date gross write-offs, Grand Total",
        "label": "Writeoff of Notes Receivable Gross",
        "documentation": "Writeoff of notes receivable gross."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_WriyeoffOfFinancingReceivableRevolving": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "WriyeoffOfFinancingReceivableRevolving",
     "crdr": "debit",
     "calculation": {
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails": {
       "parentTag": "cofs_WriteoffOfNotesReceivableGross",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.choiceone.bank/20231231/taxonomy/role/DisclosureLoansAndAllowanceForCreditLossesScheduleOfInformationRegardingCreditExposureDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Current year-to-date gross write-offs, Term Loans Total",
        "label": "Wriyeoff of Financing Receivable Revolving",
        "documentation": "Wriyeoff of financing receivable revolving."
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-1-summary-of-significant-accounting-policies-accumulated-other-comprehensive-income-details": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "statement-statement-note-1-summary-of-significant-accounting-policies-accumulated-other-comprehensive-income-details",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statement - statement - note - 1 - summary - of - significant - accounting - policies - accumulated - other - comprehensive - income - details",
        "label": "Note 1 - Summary of Significant Accounting Policies - Accumulated Other Comprehensive Income (Details)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-19-fair-value-measurements-tables": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "statement-statement-note-19-fair-value-measurements-tables",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statement - statement - note - 19 - fair - value - measurements - tables",
        "label": "Note 19 - Fair Value Measurements"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-21-regulatory-capital-regulatory-capital-details": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "statement-statement-note-21-regulatory-capital-regulatory-capital-details",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statement - statement - note - 21 - regulatory - capital - regulatory - capital - details",
        "label": "Note 21 - Regulatory Capital - Regulatory Capital (Details)"
       }
      }
     },
     "auth_ref": []
    },
    "cofs_statement-statement-note-21-regulatory-capital-tables": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.choiceone.bank/20231231",
     "localname": "statement-statement-note-21-regulatory-capital-tables",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statement - statement - note - 21 - regulatory - capital - tables",
        "label": "Note 21 - Regulatory Capital"
       }
      }
     },
     "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": "25",
   "Paragraph": "16",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-16"
  },
  "r2": {
   "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"
  },
  "r3": {
   "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"
  },
  "r4": {
   "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"
  },
  "r5": {
   "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"
  },
  "r6": {
   "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"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "r9": {
   "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"
  },
  "r10": {
   "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"
  },
  "r11": {
   "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"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "470",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-1"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-1"
  },
  "r14": {
   "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"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "405",
   "Topic": "942",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481047/942-405-50-1"
  },
  "r16": {
   "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"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "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"
  },
  "r20": {
   "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"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "r24": {
   "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"
  },
  "r25": {
   "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"
  },
  "r26": {
   "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"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r29": {
   "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"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "SubTopic": "50",
   "Topic": "860",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-35"
  },
  "r32": {
   "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"
  },
  "r33": {
   "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"
  },
  "r34": {
   "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"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "60",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "820",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482053/820-10-60-1"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479601/815-10-S99-1"
  },
  "r37": {
   "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"
  },
  "r38": {
   "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(b),22(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "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"
  },
  "r40": {
   "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.22 (b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "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.22(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r42": {
   "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.22)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "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"
  },
  "r44": {
   "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"
  },
  "r45": {
   "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"
  },
  "r46": {
   "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"
  },
  "r47": {
   "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"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "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"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14"
  },
  "r53": {
   "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"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r55": {
   "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"
  },
  "r56": {
   "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"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-1"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2"
  },
  "r64": {
   "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"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "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"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(b,d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-6"
  },
  "r80": {
   "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"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-9"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "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"
  },
  "r88": {
   "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"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "320",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//320/tableOfContent"
  },
  "r90": {
   "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"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "350",
   "SubTopic": "30",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r92": {
   "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"
  },
  "r93": {
   "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"
  },
  "r94": {
   "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"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "460",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-5"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r106": {
   "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"
  },
  "r107": {
   "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"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-3"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-8"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(a)-(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479515/805-10-05-4"
  },
  "r111": {
   "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"
  },
  "r112": {
   "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"
  },
  "r113": {
   "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"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "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"
  },
  "r117": {
   "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"
  },
  "r118": {
   "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"
  },
  "r119": {
   "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"
  },
  "r120": {
   "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"
  },
  "r121": {
   "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"
  },
  "r122": {
   "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"
  },
  "r123": {
   "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"
  },
  "r124": {
   "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"
  },
  "r125": {
   "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"
  },
  "r126": {
   "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"
  },
  "r127": {
   "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"
  },
  "r128": {
   "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"
  },
  "r129": {
   "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"
  },
  "r130": {
   "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"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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"
  },
  "r133": {
   "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"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-7"
  },
  "r135": {
   "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"
  },
  "r136": {
   "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"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "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"
  },
  "r140": {
   "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"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-1A"
  },
  "r145": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2"
  },
  "r146": {
   "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"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "835",
   "SubTopic": "30",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "850",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "860",
   "SubTopic": "50",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a),(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-2"
  },
  "r150": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "860",
   "SubTopic": "50",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "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(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-1"
  },
  "r162": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r163": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r164": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3"
  },
  "r165": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "825",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480981/942-825-50-1"
  },
  "r166": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "825",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480981/942-825-50-2"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r169": {
   "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(26)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r170": {
   "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(26)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "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"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r184": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r190": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//275/tableOfContent"
  },
  "r191": {
   "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"
  },
  "r192": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r193": {
   "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"
  },
  "r194": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481746/310-40-50-4"
  },
  "r195": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//350/tableOfContent"
  },
  "r196": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r197": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r198": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r199": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//360/tableOfContent"
  },
  "r200": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1"
  },
  "r201": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6"
  },
  "r202": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7"
  },
  "r203": {
   "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"
  },
  "r204": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r205": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r206": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r207": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r208": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19"
  },
  "r209": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//815/tableOfContent"
  },
  "r210": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.DD)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479601/815-10-S99-1"
  },
  "r211": {
   "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"
  },
  "r212": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-1A"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r219": {
   "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(15)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "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,16)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r224": {
   "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"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r236": {
   "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"
  },
  "r237": {
   "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"
  },
  "r238": {
   "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"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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.7,8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "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"
  },
  "r244": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "470",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480876/942-470-45-1"
  },
  "r245": {
   "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"
  },
  "r246": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-8A"
  },
  "r247": {
   "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"
  },
  "r248": {
   "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"
  },
  "r249": {
   "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"
  },
  "r250": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r251": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r252": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r253": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r254": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r255": {
   "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"
  },
  "r256": {
   "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"
  },
  "r257": {
   "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"
  },
  "r258": {
   "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"
  },
  "r259": {
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "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"
  },
  "r262": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r263": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r264": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r265": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r266": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "210",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-20"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-1"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-6"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-7"
  },
  "r278": {
   "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"
  },
  "r279": {
   "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"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r281": {
   "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"
  },
  "r282": {
   "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"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(7)(e)(1)(i))",
   "SubTopic": "210",
   "Topic": "942",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1403",
   "Paragraph": "(b)",
   "Publisher": "SEC"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(b)",
   "Publisher": "SEC"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(4)",
   "Publisher": "SEC"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(c)",
   "Publisher": "SEC"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1406",
   "Paragraph": "(e)",
   "Publisher": "SEC"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1406",
   "Publisher": "SEC"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r297": {
   "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"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "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"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.5-04(Schedule I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480922/205-10-S99-6"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "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(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r306": {
   "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(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r309": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-1"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "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(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r351": {
   "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"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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(n))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3"
  },
  "r357": {
   "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"
  },
  "r358": {
   "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"
  },
  "r359": {
   "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"
  },
  "r360": {
   "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"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "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"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-29"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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"
  },
  "r409": {
   "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"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-2"
  },
  "r416": {
   "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"
  },
  "r417": {
   "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"
  },
  "r418": {
   "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"
  },
  "r419": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-1"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-2"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-4"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//320/tableOfContent"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "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"
  },
  "r440": {
   "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"
  },
  "r441": {
   "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"
  },
  "r442": {
   "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"
  },
  "r443": {
   "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"
  },
  "r444": {
   "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"
  },
  "r445": {
   "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"
  },
  "r446": {
   "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"
  },
  "r447": {
   "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"
  },
  "r448": {
   "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"
  },
  "r449": {
   "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"
  },
  "r450": {
   "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"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r460": {
   "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"
  },
  "r461": {
   "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"
  },
  "r462": {
   "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"
  },
  "r463": {
   "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"
  },
  "r464": {
   "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"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r466": {
   "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"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "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"
  },
  "r472": {
   "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"
  },
  "r473": {
   "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"
  },
  "r474": {
   "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"
  },
  "r475": {
   "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"
  },
  "r476": {
   "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"
  },
  "r477": {
   "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"
  },
  "r478": {
   "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"
  },
  "r479": {
   "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"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "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"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "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"
  },
  "r506": {
   "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"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "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"
  },
  "r510": {
   "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"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "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"
  },
  "r514": {
   "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"
  },
  "r515": {
   "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"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "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"
  },
  "r519": {
   "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"
  },
  "r520": {
   "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"
  },
  "r521": {
   "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"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-2"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r533": {
   "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"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2"
  },
  "r538": {
   "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"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1"
  },
  "r545": {
   "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"
  },
  "r546": {
   "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"
  },
  "r547": {
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D"
  },
  "r562": {
   "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"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F"
  },
  "r570": {
   "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"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-4"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-6"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "712",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//712/tableOfContent"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//715/tableOfContent"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "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"
  },
  "r583": {
   "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"
  },
  "r584": {
   "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"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480126/715-20-S99-2"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480266/715-60-50-3"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-1D"
  },
  "r605": {
   "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"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-3"
  },
  "r607": {
   "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"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r618": {
   "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"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r643": {
   "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"
  },
  "r644": {
   "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"
  },
  "r645": {
   "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"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-25"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-28"
  },
  "r654": {
   "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"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-19"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-20"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r669": {
   "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"
  },
  "r670": {
   "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.Fact.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r671": {
   "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.Fact.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r672": {
   "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.Fact.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2"
  },
  "r676": {
   "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"
  },
  "r677": {
   "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"
  },
  "r678": {
   "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"
  },
  "r679": {
   "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"
  },
  "r680": {
   "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"
  },
  "r681": {
   "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"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "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"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "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"
  },
  "r689": {
   "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"
  },
  "r690": {
   "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"
  },
  "r691": {
   "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"
  },
  "r692": {
   "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"
  },
  "r693": {
   "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"
  },
  "r694": {
   "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"
  },
  "r695": {
   "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"
  },
  "r696": {
   "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"
  },
  "r697": {
   "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"
  },
  "r698": {
   "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"
  },
  "r699": {
   "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"
  },
  "r700": {
   "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"
  },
  "r701": {
   "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"
  },
  "r702": {
   "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"
  },
  "r703": {
   "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"
  },
  "r704": {
   "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"
  },
  "r705": {
   "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"
  },
  "r706": {
   "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"
  },
  "r707": {
   "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"
  },
  "r708": {
   "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"
  },
  "r709": {
   "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"
  },
  "r710": {
   "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"
  },
  "r711": {
   "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"
  },
  "r712": {
   "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"
  },
  "r713": {
   "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"
  },
  "r714": {
   "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"
  },
  "r715": {
   "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"
  },
  "r716": {
   "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"
  },
  "r717": {
   "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"
  },
  "r718": {
   "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"
  },
  "r719": {
   "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"
  },
  "r720": {
   "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"
  },
  "r721": {
   "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"
  },
  "r722": {
   "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"
  },
  "r723": {
   "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"
  },
  "r724": {
   "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"
  },
  "r725": {
   "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"
  },
  "r726": {
   "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"
  },
  "r727": {
   "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"
  },
  "r728": {
   "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"
  },
  "r729": {
   "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"
  },
  "r730": {
   "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"
  },
  "r731": {
   "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"
  },
  "r732": {
   "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"
  },
  "r733": {
   "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"
  },
  "r734": {
   "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"
  },
  "r735": {
   "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"
  },
  "r736": {
   "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"
  },
  "r737": {
   "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"
  },
  "r738": {
   "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"
  },
  "r739": {
   "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"
  },
  "r740": {
   "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"
  },
  "r741": {
   "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"
  },
  "r742": {
   "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"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "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"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-2"
  },
  "r749": {
   "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"
  },
  "r750": {
   "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"
  },
  "r751": {
   "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"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482900/835-30-50-1"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "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"
  },
  "r756": {
   "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"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-2"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-1"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6"
  },
  "r761": {
   "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"
  },
  "r762": {
   "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"
  },
  "r763": {
   "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"
  },
  "r764": {
   "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"
  },
  "r765": {
   "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"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//850/tableOfContent"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-6"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481435/852-10-45-14"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r773": {
   "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"
  },
  "r774": {
   "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"
  },
  "r775": {
   "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"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "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"
  },
  "r781": {
   "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"
  },
  "r782": {
   "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"
  },
  "r783": {
   "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"
  },
  "r784": {
   "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"
  },
  "r785": {
   "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"
  },
  "r786": {
   "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"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-1A"
  },
  "r788": {
   "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"
  },
  "r789": {
   "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"
  },
  "r790": {
   "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"
  },
  "r791": {
   "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"
  },
  "r792": {
   "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"
  },
  "r793": {
   "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"
  },
  "r794": {
   "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"
  },
  "r795": {
   "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"
  },
  "r796": {
   "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"
  },
  "r797": {
   "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"
  },
  "r798": {
   "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"
  },
  "r799": {
   "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"
  },
  "r800": {
   "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"
  },
  "r801": {
   "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"
  },
  "r802": {
   "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"
  },
  "r803": {
   "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"
  },
  "r804": {
   "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"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6"
  },
  "r809": {
   "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"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483154/926-20-50-5"
  },
  "r811": {
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1"
  },
  "r815": {
   "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"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "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"
  },
  "r820": {
   "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"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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"
  },
  "r823": {
   "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"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r829": {
   "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"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1A"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1B"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1D"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480696/942-505-50-1F"
  },
  "r840": {
   "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"
  },
  "r841": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r842": {
   "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"
  },
  "r843": {
   "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"
  },
  "r844": {
   "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"
  },
  "r845": {
   "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)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r846": {
   "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"
  },
  "r847": {
   "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"
  },
  "r848": {
   "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"
  },
  "r849": {
   "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"
  },
  "r850": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r851": {
   "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)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r852": {
   "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"
  },
  "r853": {
   "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"
  },
  "r854": {
   "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"
  },
  "r855": {
   "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"
  },
  "r856": {
   "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"
  },
  "r857": {
   "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"
  },
  "r858": {
   "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"
  },
  "r859": {
   "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"
  },
  "r860": {
   "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"
  },
  "r861": {
   "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"
  },
  "r862": {
   "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"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A"
  },
  "r864": {
   "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"
  },
  "r865": {
   "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"
  },
  "r866": {
   "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"
  },
  "r867": {
   "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"
  },
  "r868": {
   "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"
  },
  "r869": {
   "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"
  },
  "r870": {
   "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"
  },
  "r871": {
   "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"
  },
  "r872": {
   "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"
  },
  "r873": {
   "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"
  },
  "r874": {
   "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"
  },
  "r875": {
   "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"
  },
  "r876": {
   "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"
  },
  "r877": {
   "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(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r878": {
   "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"
  },
  "r879": {
   "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"
  },
  "r880": {
   "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"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-2"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-5"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-6"
  },
  "r885": {
   "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"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-21"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "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"
  },
  "r890": {
   "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"
  },
  "r891": {
   "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"
  },
  "r892": {
   "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"
  },
  "r893": {
   "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"
  },
  "r894": {
   "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"
  },
  "r895": {
   "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"
  },
  "r896": {
   "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"
  },
  "r897": {
   "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"
  },
  "r898": {
   "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"
  },
  "r899": {
   "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(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r900": {
   "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"
  },
  "r901": {
   "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"
  },
  "r902": {
   "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"
  },
  "r903": {
   "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"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "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"
  },
  "r907": {
   "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"
  },
  "r908": {
   "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"
  },
  "r909": {
   "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"
  },
  "r910": {
   "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"
  },
  "r911": {
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "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"
  },
  "r914": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r915": {
   "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"
  },
  "r916": {
   "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"
  },
  "r917": {
   "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"
  },
  "r918": {
   "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"
  },
  "r919": {
   "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"
  },
  "r920": {
   "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"
  },
  "r921": {
   "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"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "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"
  },
  "r926": {
   "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"
  },
  "r927": {
   "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"
  },
  "r928": {
   "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"
  },
  "r929": {
   "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"
  },
  "r930": {
   "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)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r931": {
   "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)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r932": {
   "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"
  },
  "r933": {
   "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"
  },
  "r934": {
   "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"
  },
  "r935": {
   "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"
  },
  "r936": {
   "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"
  },
  "r937": {
   "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"
  },
  "r938": {
   "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"
  },
  "r939": {
   "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"
  },
  "r940": {
   "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"
  },
  "r941": {
   "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"
  },
  "r942": {
   "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"
  },
  "r943": {
   "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"
  },
  "r944": {
   "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"
  },
  "r945": {
   "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"
  },
  "r946": {
   "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"
  },
  "r947": {
   "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"
  },
  "r948": {
   "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"
  },
  "r949": {
   "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"
  },
  "r950": {
   "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"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r957": {
   "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"
  },
  "r958": {
   "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"
  },
  "r959": {
   "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"
  },
  "r960": {
   "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"
  },
  "r961": {
   "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"
  },
  "r962": {
   "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"
  },
  "r963": {
   "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"
  },
  "r964": {
   "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"
  },
  "r965": {
   "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"
  },
  "r966": {
   "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"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r968": {
   "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"
  },
  "r969": {
   "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"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481586/948-10-50-3"
  },
  "r971": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481586/948-10-50-5"
  },
  "r972": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481586/948-10-50-5"
  },
  "r973": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481586/948-10-50-5"
  },
  "r974": {
   "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"
  },
  "r975": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481820/948-310-50-1"
  },
  "r976": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1"
  },
  "r977": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "450",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480598/954-450-50-1"
  },
  "r978": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1"
  },
  "r979": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1"
  },
  "r980": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1"
  },
  "r981": {
   "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"
  },
  "r982": {
   "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"
  },
  "r983": {
   "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"
  },
  "r984": {
   "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"
  },
  "r985": {
   "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"
  },
  "r986": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-23"
  },
  "r987": {
   "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"
  },
  "r988": {
   "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"
  },
  "r989": {
   "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"
  },
  "r990": {
   "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"
  },
  "r991": {
   "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"
  },
  "r992": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482785/280-10-55-47"
  },
  "r993": {
   "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"
  },
  "r994": {
   "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"
  },
  "r995": {
   "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"
  },
  "r996": {
   "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"
  },
  "r997": {
   "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"
  },
  "r998": {
   "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"
  },
  "r999": {
   "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"
  },
  "r1000": {
   "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"
  },
  "r1001": {
   "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"
  },
  "r1002": {
   "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"
  },
  "r1003": {
   "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"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r1005": {
   "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"
  },
  "r1006": {
   "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"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13"
  },
  "r1010": {
   "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"
  },
  "r1011": {
   "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"
  },
  "r1012": {
   "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"
  },
  "r1013": {
   "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"
  },
  "r1014": {
   "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"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r1019": {
   "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"
  },
  "r1020": {
   "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"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-1A"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-2"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F"
  },
  "r1024": {
   "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"
  },
  "r1025": {
   "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"
  },
  "r1026": {
   "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"
  },
  "r1027": {
   "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"
  },
  "r1028": {
   "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"
  },
  "r1029": {
   "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"
  },
  "r1030": {
   "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"
  },
  "r1031": {
   "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"
  },
  "r1032": {
   "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"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-23"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r1040": {
   "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"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-11"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "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"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "SubTopic": "20",
   "Topic": "715",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1048": {
   "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"
  },
  "r1049": {
   "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"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1404",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1405",
   "Paragraph": "(a)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "04",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "(a)",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "(a)",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "(a)",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r1065": {
   "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"
  },
  "r1066": {
   "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"
  },
  "r1067": {
   "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(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r1068": {
   "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"
  },
  "r1069": {
   "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(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r1070": {
   "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"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A"
  },
  "r1072": {
   "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"
  },
  "r1073": {
   "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"
  },
  "r1074": {
   "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"
  },
  "r1075": {
   "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"
  },
  "r1076": {
   "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"
  },
  "r1077": {
   "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"
  },
  "r1078": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r1080": {
   "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"
  },
  "r1081": {
   "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"
  },
  "r1082": {
   "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"
  },
  "r1083": {
   "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"
  },
  "r1084": {
   "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"
  },
  "r1085": {
   "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(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r1086": {
   "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"
  },
  "r1087": {
   "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"
  },
  "r1088": {
   "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(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r1089": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3"
  },
  "r1090": {
   "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"
  },
  "r1091": {
   "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"
  },
  "r1092": {
   "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"
  },
  "r1093": {
   "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"
  },
  "r1094": {
   "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"
  },
  "r1095": {
   "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"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-3"
  },
  "r1098": {
   "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"
  },
  "r1099": {
   "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"
  },
  "r1100": {
   "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"
  },
  "r1101": {
   "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"
  },
  "r1102": {
   "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"
  },
  "r1103": {
   "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"
  },
  "r1104": {
   "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"
  },
  "r1105": {
   "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"
  },
  "r1106": {
   "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"
  },
  "r1107": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1108": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1109": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1110": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1111": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1112": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1113": {
   "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"
  },
  "r1114": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1115": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1116": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1117": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1118": {
   "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"
  },
  "r1119": {
   "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"
  },
  "r1120": {
   "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"
  },
  "r1121": {
   "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"
  },
  "r1122": {
   "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"
  },
  "r1123": {
   "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"
  },
  "r1124": {
   "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"
  },
  "r1125": {
   "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"
  },
  "r1126": {
   "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"
  },
  "r1127": {
   "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"
  },
  "r1128": {
   "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"
  },
  "r1129": {
   "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"
  },
  "r1130": {
   "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"
  },
  "r1131": {
   "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"
  },
  "r1132": {
   "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"
  },
  "r1133": {
   "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"
  },
  "r1134": {
   "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"
  },
  "r1135": {
   "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"
  },
  "r1136": {
   "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"
  },
  "r1137": {
   "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"
  },
  "r1138": {
   "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"
  },
  "r1139": {
   "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"
  },
  "r1140": {
   "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"
  },
  "r1141": {
   "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"
  },
  "r1142": {
   "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"
  },
  "r1143": {
   "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"
  },
  "r1144": {
   "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"
  },
  "r1145": {
   "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"
  },
  "r1146": {
   "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"
  },
  "r1147": {
   "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"
  },
  "r1148": {
   "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"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1150": {
   "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"
  },
  "r1151": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1152": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1"
  },
  "r1157": {
   "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"
  },
  "r1158": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A"
  },
  "r1159": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1160": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10"
  },
  "r1161": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r1162": {
   "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"
  },
  "r1163": {
   "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"
  },
  "r1164": {
   "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)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A"
  },
  "r1165": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1166": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B"
  },
  "r1167": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(10)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1170": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1171": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1172": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1173": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1174": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1175": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1176": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1177": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1178": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1179": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1180": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1181": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1182": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1183": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1184": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1185": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1186": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(8)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1187": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1188": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1189": {
   "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"
  },
  "r1190": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1191": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1192": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1193": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1194": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1195": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1196": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1197": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1198": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1199": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1200": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1201": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1202": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1203": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1204": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1205": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1206": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1207": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1208": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1209": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1210": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1211": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(k)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1212": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1213": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r1214": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-2"
  },
  "r1215": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-3"
  },
  "r1216": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-3"
  },
  "r1217": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1218": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1219": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1220": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1221": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1222": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1223": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1224": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1225": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6"
  },
  "r1226": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-8"
  },
  "r1227": {
   "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"
  },
  "r1228": {
   "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"
  },
  "r1229": {
   "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"
  },
  "r1230": {
   "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"
  },
  "r1231": {
   "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"
  },
  "r1232": {
   "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"
  },
  "r1233": {
   "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"
  },
  "r1234": {
   "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"
  },
  "r1235": {
   "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"
  },
  "r1236": {
   "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"
  },
  "r1237": {
   "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"
  },
  "r1238": {
   "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"
  },
  "r1239": {
   "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"
  },
  "r1240": {
   "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"
  },
  "r1241": {
   "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"
  },
  "r1242": {
   "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"
  },
  "r1243": {
   "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"
  },
  "r1244": {
   "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"
  },
  "r1245": {
   "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"
  },
  "r1246": {
   "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"
  },
  "r1247": {
   "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"
  },
  "r1248": {
   "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"
  },
  "r1249": {
   "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"
  },
  "r1250": {
   "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"
  },
  "r1251": {
   "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"
  },
  "r1252": {
   "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"
  },
  "r1253": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1254": {
   "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"
  },
  "r1255": {
   "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"
  },
  "r1256": {
   "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"
  },
  "r1257": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12"
  },
  "r1258": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r1259": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r1260": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-6"
  },
  "r1261": {
   "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"
  },
  "r1262": {
   "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"
  },
  "r1263": {
   "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"
  },
  "r1264": {
   "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"
  },
  "r1265": {
   "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"
  },
  "r1266": {
   "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"
  },
  "r1267": {
   "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"
  },
  "r1268": {
   "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"
  },
  "r1269": {
   "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"
  },
  "r1270": {
   "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"
  },
  "r1271": {
   "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"
  },
  "r1272": {
   "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"
  },
  "r1273": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1274": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1275": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-4"
  },
  "r1276": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6"
  },
  "r1277": {
   "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"
  },
  "r1278": {
   "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"
  },
  "r1279": {
   "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"
  },
  "r1280": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1281": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1282": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1283": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1284": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1285": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1286": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1287": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-1A"
  },
  "r1288": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r1289": {
   "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"
  },
  "r1290": {
   "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"
  },
  "r1291": {
   "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"
  },
  "r1292": {
   "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"
  },
  "r1293": {
   "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"
  },
  "r1294": {
   "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"
  },
  "r1295": {
   "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"
  },
  "r1296": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r1297": {
   "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"
  },
  "r1298": {
   "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"
  },
  "r1299": {
   "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"
  },
  "r1300": {
   "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"
  },
  "r1301": {
   "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"
  },
  "r1302": {
   "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"
  },
  "r1303": {
   "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(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r1304": {
   "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"
  },
  "r1305": {
   "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"
  },
  "r1306": {
   "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"
  },
  "r1307": {
   "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"
  },
  "r1308": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6"
  },
  "r1309": {
   "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"
  }
 }
}
