Segment Information - Summary of Segment Reporting Information by Segment (Details) - USD ($) $ in Thousands |
3 Months Ended | |
|---|---|---|
Mar. 31, 2026 |
Mar. 31, 2025 |
|
| Segment Reporting Information [Line Items] | ||
| Interest expense | $ 4,620 | $ 5,631 |
| Income tax expense | 20,252 | 13,573 |
| E&M | Operating segments | ||
| Segment Reporting Information [Line Items] | ||
| Depreciation and amortization expense | 1,574 | 1,482 |
| Interest expense | (2,058) | (1,823) |
| Income tax expense | 19,083 | 13,267 |
| Capital expenditures | 4,345 | 9,319 |
| T&D | Operating segments | ||
| Segment Reporting Information [Line Items] | ||
| Depreciation and amortization expense | 6,546 | 5,449 |
| Interest expense | 568 | 700 |
| Income tax expense | 4,964 | 3,442 |
| Capital expenditures | $ 11,191 | $ 9,820 |
| X | ||||||||||
- Definition The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef
|
| X | ||||||||||
- Definition Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations. Reference 1: http://www.xbrl.org/2003/role/exampleRef
|
| X | ||||||||||
- Definition Amount of interest expense classified as nonoperating. Reference 1: http://www.xbrl.org/2003/role/exampleRef
|
| X | ||||||||||
- Definition Amount of expenditure for addition to long-lived assets included in determination of segment assets by chief operating decision maker (CODM) or otherwise regularly provided to CODM. Excludes expenditure for addition to financial instrument, long-term customer relationship of financial institution, mortgage and other servicing rights, deferred policy acquisition cost, and deferred tax assets. Reference 1: http://www.xbrl.org/2003/role/exampleRef
|
| 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. No definition available.
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|