 | us-gaap:InterimPeriodCostsNotAllocableDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/InterimReporting |
 | us-gaap:InterimPeriodCostsNotAllocableAmountFirstItem | parent-child | http://fasb.org/us-gaap/role/disclosure/InterimReporting |
 | us-gaap:InterimPeriodCostsNotAllocableAmountSecondItem | parent-child | http://fasb.org/us-gaap/role/disclosure/InterimReporting |
 | us-gaap:InterimPeriodCostsNotAllocableAmountThirdItem | parent-child | http://fasb.org/us-gaap/role/disclosure/InterimReporting |
 | us-gaap:InterimPeriodCostsNotAllocableTable | all | http://fasb.org/us-gaap/role/disclosure/InterimReportingInterimPeriodCostsNotAllocableTable |
 | us-gaap:InterimPeriodCostsNotAllocableDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/InterimReportingInterimPeriodCostsNotAllocableTable |
 | us-gaap:InterimPeriodCostsNotAllocableAmountFirstItem | domain-member | http://fasb.org/us-gaap/role/disclosure/InterimReportingInterimPeriodCostsNotAllocableTable |
 | us-gaap:InterimPeriodCostsNotAllocableAmountSecondItem | domain-member | http://fasb.org/us-gaap/role/disclosure/InterimReportingInterimPeriodCostsNotAllocableTable |
 | us-gaap:InterimPeriodCostsNotAllocableAmountThirdItem | domain-member | http://fasb.org/us-gaap/role/disclosure/InterimReportingInterimPeriodCostsNotAllocableTable |