| Standard label: | Derivatives, Embedded Derivatives [Policy Text Block] | 
| Name: | us-gaap:DerivativesEmbeddedDerivatives | 
| Documentation: | Disclosure of accounting policy for embedded derivatives, including how such derivatives are identified and analyzed for possible separation from their host contracts. | 
| Object type: | cm:Level2TextBlock | 
| Data type: | Text Block (HTML) (nonnum:textBlockItemType) | 
| Period type: | For Period (duration) | 
| Balance type: | (no balance type) | 
| Abstract: | false | 
| Workiva Wdesk Taxonomy Analyzer: | us-gaap:DerivativesEmbeddedDerivatives | 
| Label | Role | Language | 
| Derivatives, Embedded Derivatives [Policy Text Block] | http://www.xbrl.org/2003/role/label | en-US | 
| Reference | Role | Topic | 
| FASB Accounting Standards Codification 235 10 50 3 | http://fasb.org/us-gaap/role/ref/legacyRef | 235 | 
| FASB Accounting Standards Codification 815 10 25 5B | http://fasb.org/us-gaap/role/ref/legacyRef | 815 | 
| FASB Accounting Standards Codification 815 10 35 1 | http://fasb.org/us-gaap/role/ref/legacyRef | 815 | 
| FASB Accounting Standards Codification 815 15 25 1 | http://fasb.org/us-gaap/role/ref/legacyRef | 815 | 
| FASB Accounting Standards Codification 815 15 35 1 | http://fasb.org/us-gaap/role/ref/legacyRef | 815 |