| **Leases - Additional Details (Details)**   | Dec. 31, 2021 |
|---------------------------------------------|---------------|
| Minimum                                     |          |
| **Lessee, Lease, Description [Line Items]** |          |
| Lease term                                  | 2 years       |
| Lease renewal term                          | 1 year        |
| Maximum                                     |          |
| **Lessee, Lease, Description [Line Items]** |          |
| Lease term                                  | 10 years      |
| Lease renewal term                          | 5 years       |

| X                                                                                                                                                                                                                                                                                                                                                                                                                       |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| - Definition
Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.
+ References
No definition available.
+ Details**Name:**us-gaap_LesseeLeaseDescriptionLineItems**Namespace Prefix:**us-gaap_**Data Type:**xbrli:stringItemType**Balance Type:**na**Period Type:**duration |
| X                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| - Definition
Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.
+ References
Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 842 -SubTopic 20 -Section 50 -Paragraph 3 -Subparagraph (a)(3) -URI http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980
+ Details**Name:**us-gaap_LesseeOperatingLeaseRenewalTerm**Namespace Prefix:**us-gaap_**Data Type:**xbrli:durationItemType**Balance Type:**na**Period Type:**instant |
| X                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| - Definition
Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.
+ References
Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 842 -SubTopic 20 -Section 50 -Paragraph 3 -Subparagraph (a)(3) -URI http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980
+ Details**Name:**us-gaap_LesseeOperatingLeaseTermOfContract**Namespace Prefix:**us-gaap_**Data Type:**xbrli:durationItemType**Balance Type:**na**Period Type:**instant |
| X                                                                                                                       |
|-------------------------------------------------------------------------------------------------------------------------|
| - Details**Name:**srt_RangeAxis=srt_MinimumMember**Namespace Prefix:****Data Type:**na**Balance Type:****Period Type:** |
| X                                                                                                                       |
|-------------------------------------------------------------------------------------------------------------------------|
| - Details**Name:**srt_RangeAxis=srt_MaximumMember**Namespace Prefix:****Data Type:**na**Balance Type:****Period Type:** |