v3.26.1
Revenue Recognition - Disaggregation (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Revenue Recognition    
Net sales $ 1,445,860 $ 1,233,278
Insulation and accessories    
Revenue Recognition    
Net sales 1,129,578 1,033,024
Gutters    
Revenue Recognition    
Net sales 64,895 61,256
Glass and windows    
Revenue Recognition    
Net sales 51,150 59,516
Roofing    
Revenue Recognition    
Net sales 120,144  
All other    
Revenue Recognition    
Net sales 80,093 79,482
Residential    
Revenue Recognition    
Net sales 709,099 769,751
Commercial and Industrial    
Revenue Recognition    
Net sales 736,761 463,527
Installation Services    
Revenue Recognition    
Net sales 777,329 745,533
Specialty Distribution    
Revenue Recognition    
Net sales 668,531 487,745
Operating Segment    
Revenue Recognition    
Net sales 1,514,409 1,305,337
Operating Segment | Installation Services    
Revenue Recognition    
Net sales 777,329 745,533
Operating Segment | Installation Services | Insulation and accessories    
Revenue Recognition    
Net sales 525,501 596,284
Operating Segment | Installation Services | Gutters    
Revenue Recognition    
Net sales 23,894 24,895
Operating Segment | Installation Services | Glass and windows    
Revenue Recognition    
Net sales 51,150 59,516
Operating Segment | Installation Services | Roofing    
Revenue Recognition    
Net sales 120,144  
Operating Segment | Installation Services | All other    
Revenue Recognition    
Net sales 56,640 64,838
Operating Segment | Installation Services | Residential    
Revenue Recognition    
Net sales 540,181 620,961
Operating Segment | Installation Services | Commercial and Industrial    
Revenue Recognition    
Net sales 237,148 124,572
Operating Segment | Specialty Distribution    
Revenue Recognition    
Net sales 737,080 559,804
Operating Segment | Specialty Distribution | Insulation and accessories    
Revenue Recognition    
Net sales 661,752 500,765
Operating Segment | Specialty Distribution | Gutters    
Revenue Recognition    
Net sales 50,533 43,435
Operating Segment | Specialty Distribution | All other    
Revenue Recognition    
Net sales 24,795 15,604
Operating Segment | Specialty Distribution | Residential    
Revenue Recognition    
Net sales 224,103 210,014
Operating Segment | Specialty Distribution | Commercial and Industrial    
Revenue Recognition    
Net sales 512,977 349,790
Eliminations    
Revenue Recognition    
Net sales (68,549) (72,059)
Eliminations | Insulation and accessories    
Revenue Recognition    
Net sales (57,675) (64,025)
Eliminations | Gutters    
Revenue Recognition    
Net sales (9,532) (7,074)
Eliminations | All other    
Revenue Recognition    
Net sales (1,342) (960)
Eliminations | Residential    
Revenue Recognition    
Net sales (55,185) (61,224)
Eliminations | Commercial and Industrial    
Revenue Recognition    
Net sales (13,364) (10,835)
Eliminations | Specialty Distribution    
Revenue Recognition    
Net sales $ (68,549) $ (72,059)