 | us-gaap:AcceleratedShareRepurchasesInitialPricePaidPerShare | parent-child | http://fasb.org/us-gaap/role/disclosure/OtherLiabilities |
 | us-gaap:AcceleratedShareRepurchasesFinalPricePaidPerShare | parent-child | http://fasb.org/us-gaap/role/disclosure/OtherLiabilities |
 | us-gaap:AcceleratedShareRepurchasesSettlementPaymentOrReceipt | parent-child | http://fasb.org/us-gaap/role/disclosure/OtherLiabilities |
 | us-gaap:AcceleratedShareRepurchasesAdjustmentToRecordedAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/OtherLiabilities |
 | us-gaap:AcceleratedShareRepurchasesCashOrStockSettlement | parent-child | http://fasb.org/us-gaap/role/disclosure/OtherLiabilities |
 | us-gaap:AcceleratedShareRepurchasesTable | all | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |
 | us-gaap:AcceleratedShareRepurchasesInitialPricePaidPerShare | domain-member | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |
 | us-gaap:AcceleratedShareRepurchasesFinalPricePaidPerShare | domain-member | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |
 | us-gaap:AcceleratedShareRepurchasesSettlementPaymentOrReceipt | domain-member | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |
 | us-gaap:AcceleratedShareRepurchasesAdjustmentToRecordedAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |
 | us-gaap:AcceleratedShareRepurchasesCashOrStockSettlement | domain-member | http://fasb.org/us-gaap/role/disclosure/OtherLiabilitiesAcceleratedShareRepurchasesTable |