 | us-gaap:DebtInstrumentNameDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/Debt |
 | us-gaap:DebtInstrumentNameDomain | dimension-default | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentRedemptionTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-domain | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentRedemptionTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-default | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-domain | http://fasb.org/us-gaap/role/disclosure/DebtDebtInstrumentTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-default | http://fasb.org/us-gaap/role/disclosure/DebtObligationWithJointAndSeveralLiabilityArrangementTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-domain | http://fasb.org/us-gaap/role/disclosure/DebtObligationWithJointAndSeveralLiabilityArrangementTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-default | http://fasb.org/us-gaap/role/disclosure/DebtScheduleOfShortTermDebtTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-domain | http://fasb.org/us-gaap/role/disclosure/DebtScheduleOfShortTermDebtTable |
 | us-gaap:DebtInstrumentNameDomain | parent-child | http://fasb.org/us-gaap/role/disclosure/RegulatedOperations |
 | us-gaap:DebtInstrumentNameDomain | dimension-default | http://fasb.org/us-gaap/role/disclosure/RegulatedOperationsScheduleOfCapitalizationLongtermDebtTable |
 | us-gaap:DebtInstrumentNameDomain | dimension-domain | http://fasb.org/us-gaap/role/disclosure/RegulatedOperationsScheduleOfCapitalizationLongtermDebtTable |