| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<FilingSummary> |
| <Version> 3.24.0.1 </Version> |
| <ProcessingTime/> |
| <ReportFormat> html </ReportFormat> |
| <ContextCount> 429 </ContextCount> |
| <ElementCount> 586 </ElementCount> |
| <EntityCount> 1 </EntityCount> |
| <FootnotesReported> true </FootnotesReported> |
| <SegmentCount> 129 </SegmentCount> |
| <ScenarioCount> 0 </ScenarioCount> |
| <TuplesReported> false </TuplesReported> |
| <UnitCount> 8 </UnitCount> |
| <MyReports> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R1.htm </HtmlFileName> |
| | | <LongName> 0000001 - Document - Cover </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/Cover </Role> |
| | | <ShortName> Cover </ShortName> |
| | | <MenuCategory> Cover </MenuCategory> |
| | | <Position> 1 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R2.htm </HtmlFileName> |
| | | <LongName> 0000002 - Document - Audit Information </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AuditInformation </Role> |
| | | <ShortName> Audit Information </ShortName> |
| | | <MenuCategory> Cover </MenuCategory> |
| | | <Position> 2 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R3.htm </HtmlFileName> |
| | | <LongName> 0000003 - Statement - Consolidated Balance Sheets </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedBalanceSheets </Role> |
| | | <ShortName> Consolidated Balance Sheets </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 3 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R4.htm </HtmlFileName> |
| | | <LongName> 0000004 - Statement - Consolidated Balance Sheets (Parentheticals) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedBalanceSheetsParentheticals </Role> |
| | | <ShortName> Consolidated Balance Sheets (Parentheticals) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 4 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R5.htm </HtmlFileName> |
| | | <LongName> 0000005 - Statement - Consolidated Statements of Operations </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofOperations </Role> |
| | | <ShortName> Consolidated Statements of Operations </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 5 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R6.htm </HtmlFileName> |
| | | <LongName> 0000006 - Statement - Consolidated Statements of Comprehensive Income </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofComprehensiveIncome </Role> |
| | | <ShortName> Consolidated Statements of Comprehensive Income </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 6 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R7.htm </HtmlFileName> |
| | | <LongName> 0000007 - Statement - Consolidated Statements of Shareholders' Equity </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofShareholdersEquity </Role> |
| | | <ShortName> Consolidated Statements of Shareholders' Equity </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 7 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R8.htm </HtmlFileName> |
| | | <LongName> 0000008 - Statement - Consolidated Statements of Shareholders' Equity (Parentheticals) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofShareholdersEquityParentheticals </Role> |
| | | <ShortName> Consolidated Statements of Shareholders' Equity (Parentheticals) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 8 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R9.htm </HtmlFileName> |
| | | <LongName> 0000009 - Statement - Consolidated Statements of Cash Flows </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofCashFlows </Role> |
| | | <ShortName> Consolidated Statements of Cash Flows </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 9 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R10.htm </HtmlFileName> |
| | | <LongName> 0000010 - Statement - Consolidated Statements of Cash Flows (Parentheticals) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConsolidatedStatementsofCashFlowsParentheticals </Role> |
| | | <ShortName> Consolidated Statements of Cash Flows (Parentheticals) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 10 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R11.htm </HtmlFileName> |
| | | <LongName> 0000011 - Disclosure - Summary of Significant Accounting Policies </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/SummaryofSignificantAccountingPolicies </Role> |
| | | <ShortName> Summary of Significant Accounting Policies </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 11 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R12.htm </HtmlFileName> |
| | | <LongName> 0000012 - Disclosure - Acquisitions </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/Acquisitions </Role> |
| | | <ShortName> Acquisitions </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 12 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R13.htm </HtmlFileName> |
| | | <LongName> 0000013 - Disclosure - Revisions in Estimates </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/RevisionsinEstimates </Role> |
| | | <ShortName> Revisions in Estimates </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 13 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R14.htm </HtmlFileName> |
| | | <LongName> 0000014 - Disclosure - Disaggregation of Revenue </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/DisaggregationofRevenue </Role> |
| | | <ShortName> Disaggregation of Revenue </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 14 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R15.htm </HtmlFileName> |
| | | <LongName> 0000015 - Disclosure - Unearned Revenue </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/UnearnedRevenue </Role> |
| | | <ShortName> Unearned Revenue </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 15 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R16.htm </HtmlFileName> |
| | | <LongName> 0000016 - Disclosure - Contract Assets and Liabilities </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContractAssetsandLiabilities </Role> |
| | | <ShortName> Contract Assets and Liabilities </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 16 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R17.htm </HtmlFileName> |
| | | <LongName> 0000017 - Disclosure - Receivables, net </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/Receivablesnet </Role> |
| | | <ShortName> Receivables, net </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 17 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R18.htm </HtmlFileName> |
| | | <LongName> 0000018 - Disclosure - Fair Value Measurement </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/FairValueMeasurement </Role> |
| | | <ShortName> Fair Value Measurement </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 18 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R19.htm </HtmlFileName> |
| | | <LongName> 0000019 - Disclosure - Construction Joint Ventures </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConstructionJointVentures </Role> |
| | | <ShortName> Construction Joint Ventures </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 19 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R20.htm </HtmlFileName> |
| | | <LongName> 0000020 - Disclosure - Investments in Affiliates </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliates </Role> |
| | | <ShortName> Investments in Affiliates </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 20 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R21.htm </HtmlFileName> |
| | | <LongName> 0000021 - Disclosure - Property and Equipment, Net </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/PropertyandEquipmentNet </Role> |
| | | <ShortName> Property and Equipment, Net </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 21 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R22.htm </HtmlFileName> |
| | | <LongName> 0000022 - Disclosure - Intangible Assets </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IntangibleAssets </Role> |
| | | <ShortName> Intangible Assets </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 22 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R23.htm </HtmlFileName> |
| | | <LongName> 0000023 - Disclosure - Accrued Expenses and Other Current Liabilities </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AccruedExpensesandOtherCurrentLiabilities </Role> |
| | | <ShortName> Accrued Expenses and Other Current Liabilities </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 23 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R24.htm </HtmlFileName> |
| | | <LongName> 0000024 - Disclosure - Long-term Debt </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LongtermDebt </Role> |
| | | <ShortName> Long-term Debt </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 24 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R25.htm </HtmlFileName> |
| | | <LongName> 0000025 - Disclosure - Leases </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/Leases </Role> |
| | | <ShortName> Leases </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 25 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R26.htm </HtmlFileName> |
| | | <LongName> 0000026 - Disclosure - Employee Benefit Plans </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/EmployeeBenefitPlans </Role> |
| | | <ShortName> Employee Benefit Plans </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 26 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R27.htm </HtmlFileName> |
| | | <LongName> 0000027 - Disclosure - Shareholders' Equity </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ShareholdersEquity </Role> |
| | | <ShortName> Shareholders' Equity </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 27 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R28.htm </HtmlFileName> |
| | | <LongName> 0000028 - Disclosure - Weighted Average Shares Outstanding and Net Income Per Share </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShare </Role> |
| | | <ShortName> Weighted Average Shares Outstanding and Net Income Per Share </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 28 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R29.htm </HtmlFileName> |
| | | <LongName> 0000029 - Disclosure - Income Taxes </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxes </Role> |
| | | <ShortName> Income Taxes </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 29 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R30.htm </HtmlFileName> |
| | | <LongName> 0000030 - Disclosure - Contingencies - Legal Proceedings </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContingenciesLegalProceedings </Role> |
| | | <ShortName> Contingencies - Legal Proceedings </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 30 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R31.htm </HtmlFileName> |
| | | <LongName> 0000031 - Disclosure - Reportable Segment Information </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformation </Role> |
| | | <ShortName> Reportable Segment Information </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 31 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R32.htm </HtmlFileName> |
| | | <LongName> 995410 - Disclosure - Pay vs Performance Disclosure </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://xbrl.sec.gov/ecd/role/PvpDisclosure </Role> |
| | | <ShortName> Pay vs Performance Disclosure </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 32 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R33.htm </HtmlFileName> |
| | | <LongName> 995445 - Disclosure - Insider Trading Arrangements </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements </Role> |
| | | <ShortName> Insider Trading Arrangements </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 33 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R34.htm </HtmlFileName> |
| | | <LongName> 9954471 - Disclosure - Summary of Significant Accounting Policies (Policies) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/SummaryofSignificantAccountingPoliciesPolicies </Role> |
| | | <ShortName> Summary of Significant Accounting Policies (Policies) </ShortName> |
| | | <MenuCategory> Policies </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/SummaryofSignificantAccountingPolicies </ParentRole> |
| | | <Position> 34 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R35.htm </HtmlFileName> |
| | | <LongName> 9954472 - Disclosure - Acquisitions (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AcquisitionsTables </Role> |
| | | <ShortName> Acquisitions (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/Acquisitions </ParentRole> |
| | | <Position> 35 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R36.htm </HtmlFileName> |
| | | <LongName> 9954473 - Disclosure - Revisions in Estimates (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/RevisionsinEstimatesTables </Role> |
| | | <ShortName> Revisions in Estimates (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/RevisionsinEstimates </ParentRole> |
| | | <Position> 36 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R37.htm </HtmlFileName> |
| | | <LongName> 9954474 - Disclosure - Disaggregation of Revenue (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/DisaggregationofRevenueTables </Role> |
| | | <ShortName> Disaggregation of Revenue (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/DisaggregationofRevenue </ParentRole> |
| | | <Position> 37 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R38.htm </HtmlFileName> |
| | | <LongName> 9954475 - Disclosure - Unearned Revenue (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/UnearnedRevenueTables </Role> |
| | | <ShortName> Unearned Revenue (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/UnearnedRevenue </ParentRole> |
| | | <Position> 38 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R39.htm </HtmlFileName> |
| | | <LongName> 9954476 - Disclosure - Contract Assets and Liabilities (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContractAssetsandLiabilitiesTables </Role> |
| | | <ShortName> Contract Assets and Liabilities (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ContractAssetsandLiabilities </ParentRole> |
| | | <Position> 39 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R40.htm </HtmlFileName> |
| | | <LongName> 9954477 - Disclosure - Receivables, net (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReceivablesnetTables </Role> |
| | | <ShortName> Receivables, net (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/Receivablesnet </ParentRole> |
| | | <Position> 40 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R41.htm </HtmlFileName> |
| | | <LongName> 9954478 - Disclosure - Fair Value Measurement (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/FairValueMeasurementTables </Role> |
| | | <ShortName> Fair Value Measurement (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/FairValueMeasurement </ParentRole> |
| | | <Position> 41 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R42.htm </HtmlFileName> |
| | | <LongName> 9954479 - Disclosure - Construction Joint Ventures (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConstructionJointVenturesTables </Role> |
| | | <ShortName> Construction Joint Ventures (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ConstructionJointVentures </ParentRole> |
| | | <Position> 42 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R43.htm </HtmlFileName> |
| | | <LongName> 9954480 - Disclosure - Investments in Affiliates (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesTables </Role> |
| | | <ShortName> Investments in Affiliates (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/InvestmentsinAffiliates </ParentRole> |
| | | <Position> 43 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R44.htm </HtmlFileName> |
| | | <LongName> 9954481 - Disclosure - Property and Equipment, Net (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/PropertyandEquipmentNetTables </Role> |
| | | <ShortName> Property and Equipment, Net (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/PropertyandEquipmentNet </ParentRole> |
| | | <Position> 44 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R45.htm </HtmlFileName> |
| | | <LongName> 9954482 - Disclosure - Intangible Assets (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IntangibleAssetsTables </Role> |
| | | <ShortName> Intangible Assets (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/IntangibleAssets </ParentRole> |
| | | <Position> 45 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R46.htm </HtmlFileName> |
| | | <LongName> 9954483 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AccruedExpensesandOtherCurrentLiabilitiesTables </Role> |
| | | <ShortName> Accrued Expenses and Other Current Liabilities (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/AccruedExpensesandOtherCurrentLiabilities </ParentRole> |
| | | <Position> 46 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R47.htm </HtmlFileName> |
| | | <LongName> 9954484 - Disclosure - Long-term Debt (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LongtermDebtTables </Role> |
| | | <ShortName> Long-term Debt (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/LongtermDebt </ParentRole> |
| | | <Position> 47 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R48.htm </HtmlFileName> |
| | | <LongName> 9954485 - Disclosure - Leases (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LeasesTables </Role> |
| | | <ShortName> Leases (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/Leases </ParentRole> |
| | | <Position> 48 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R49.htm </HtmlFileName> |
| | | <LongName> 9954486 - Disclosure - Employee Benefit Plans (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/EmployeeBenefitPlansTables </Role> |
| | | <ShortName> Employee Benefit Plans (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/EmployeeBenefitPlans </ParentRole> |
| | | <Position> 49 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R50.htm </HtmlFileName> |
| | | <LongName> 9954487 - Disclosure - Shareholders' Equity (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ShareholdersEquityTables </Role> |
| | | <ShortName> Shareholders' Equity (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ShareholdersEquity </ParentRole> |
| | | <Position> 50 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R51.htm </HtmlFileName> |
| | | <LongName> 9954488 - Disclosure - Weighted Average Shares Outstanding and Net Income Per Share (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShareTables </Role> |
| | | <ShortName> Weighted Average Shares Outstanding and Net Income Per Share (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShare </ParentRole> |
| | | <Position> 51 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R52.htm </HtmlFileName> |
| | | <LongName> 9954489 - Disclosure - Income Taxes (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesTables </Role> |
| | | <ShortName> Income Taxes (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/IncomeTaxes </ParentRole> |
| | | <Position> 52 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R53.htm </HtmlFileName> |
| | | <LongName> 9954490 - Disclosure - Reportable Segment Information (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformationTables </Role> |
| | | <ShortName> Reportable Segment Information (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ReportableSegmentInformation </ParentRole> |
| | | <Position> 53 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R54.htm </HtmlFileName> |
| | | <LongName> 9954491 - Disclosure - Summary of Significant Accounting Policies (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/SummaryofSignificantAccountingPoliciesDetails </Role> |
| | | <ShortName> Summary of Significant Accounting Policies (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/SummaryofSignificantAccountingPoliciesPolicies </ParentRole> |
| | | <Position> 54 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R55.htm </HtmlFileName> |
| | | <LongName> 9954492 - Disclosure - Acquisitions (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AcquisitionsDetails </Role> |
| | | <ShortName> Acquisitions (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/AcquisitionsTables </ParentRole> |
| | | <Position> 55 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R56.htm </HtmlFileName> |
| | | <LongName> 9954493 - Disclosure - Acquisitions - Schedule of Purchase Price and Assumed Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AcquisitionsScheduleofPurchasePriceandAssumedLiabilitiesDetails </Role> |
| | | <ShortName> Acquisitions - Schedule of Purchase Price and Assumed Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 56 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R57.htm </HtmlFileName> |
| | | <LongName> 9954494 - Disclosure - Acquisitions - Schedule of Acquired Indefinite-Lived Intangible Assets (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AcquisitionsScheduleofAcquiredIndefiniteLivedIntangibleAssetsDetails </Role> |
| | | <ShortName> Acquisitions - Schedule of Acquired Indefinite-Lived Intangible Assets (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 57 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R58.htm </HtmlFileName> |
| | | <LongName> 9954495 - Disclosure - Acquisitions - Pro Forma Financial Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AcquisitionsProFormaFinancialInformationDetails </Role> |
| | | <ShortName> Acquisitions - Pro Forma Financial Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 58 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R59.htm </HtmlFileName> |
| | | <LongName> 9954496 - Disclosure - Revisions in Estimates (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/RevisionsinEstimatesDetails </Role> |
| | | <ShortName> Revisions in Estimates (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/RevisionsinEstimatesTables </ParentRole> |
| | | <Position> 59 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R60.htm </HtmlFileName> |
| | | <LongName> 9954497 - Disclosure - Revisions in Estimates - Summary of Impact of Revisions in Estimates to Gross Profit (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/RevisionsinEstimatesSummaryofImpactofRevisionsinEstimatestoGrossProfitDetails </Role> |
| | | <ShortName> Revisions in Estimates - Summary of Impact of Revisions in Estimates to Gross Profit (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 60 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R61.htm </HtmlFileName> |
| | | <LongName> 9954498 - Disclosure - Disaggregation of Revenue - Schedule of Disaggregation of Revenue (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/DisaggregationofRevenueScheduleofDisaggregationofRevenueDetails </Role> |
| | | <ShortName> Disaggregation of Revenue - Schedule of Disaggregation of Revenue (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 61 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R62.htm </HtmlFileName> |
| | | <LongName> 9954499 - Disclosure - Unearned Revenue - Schedule of Unearned Revenue (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/UnearnedRevenueScheduleofUnearnedRevenueDetails </Role> |
| | | <ShortName> Unearned Revenue - Schedule of Unearned Revenue (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 62 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R63.htm </HtmlFileName> |
| | | <LongName> 9954500 - Disclosure - Contract Assets and Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContractAssetsandLiabilitiesDetails </Role> |
| | | <ShortName> Contract Assets and Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ContractAssetsandLiabilitiesTables </ParentRole> |
| | | <Position> 63 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R64.htm </HtmlFileName> |
| | | <LongName> 9954501 - Disclosure - Contract Assets and Liabilities - Component of Contract Asset and Liability Balances (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContractAssetsandLiabilitiesComponentofContractAssetandLiabilityBalancesDetails </Role> |
| | | <ShortName> Contract Assets and Liabilities - Component of Contract Asset and Liability Balances (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 64 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R65.htm </HtmlFileName> |
| | | <LongName> 9954502 - Disclosure - Receivables, net (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReceivablesnetDetails </Role> |
| | | <ShortName> Receivables, net (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ReceivablesnetTables </ParentRole> |
| | | <Position> 65 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R66.htm </HtmlFileName> |
| | | <LongName> 9954503 - Disclosure - Receivables, net - Major Categories of Receivables (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReceivablesnetMajorCategoriesofReceivablesDetails </Role> |
| | | <ShortName> Receivables, net - Major Categories of Receivables (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 66 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R67.htm </HtmlFileName> |
| | | <LongName> 9954504 - Disclosure - Fair Value Measurement (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/FairValueMeasurementDetails </Role> |
| | | <ShortName> Fair Value Measurement (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/FairValueMeasurementTables </ParentRole> |
| | | <Position> 67 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R68.htm </HtmlFileName> |
| | | <LongName> 9954505 - Disclosure - Fair Value Measurement - Significant Assets and Liabilities Measured at Fair Value (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/FairValueMeasurementSignificantAssetsandLiabilitiesMeasuredatFairValueDetails </Role> |
| | | <ShortName> Fair Value Measurement - Significant Assets and Liabilities Measured at Fair Value (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 68 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R69.htm </HtmlFileName> |
| | | <LongName> 9954506 - Disclosure - Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/FairValueMeasurementScheduleofCarryingandFairValueAmountsDetails </Role> |
| | | <ShortName> Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 69 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R70.htm </HtmlFileName> |
| | | <LongName> 9954507 - Disclosure - Construction Joint Ventures (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConstructionJointVenturesDetails </Role> |
| | | <ShortName> Construction Joint Ventures (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ConstructionJointVenturesTables </ParentRole> |
| | | <Position> 70 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R71.htm </HtmlFileName> |
| | | <LongName> 9954508 - Disclosure - Construction Joint Ventures - Unconsolidated Construction Joint Ventures Financial Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConstructionJointVenturesUnconsolidatedConstructionJointVenturesFinancialInformationDetails </Role> |
| | | <ShortName> Construction Joint Ventures - Unconsolidated Construction Joint Ventures Financial Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 71 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R72.htm </HtmlFileName> |
| | | <LongName> 9954509 - Disclosure - Construction Joint Ventures - Schedule of Unconsolidated Construction Joint Ventures Revenue and Costs (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ConstructionJointVenturesScheduleofUnconsolidatedConstructionJointVenturesRevenueandCostsDetails </Role> |
| | | <ShortName> Construction Joint Ventures - Schedule of Unconsolidated Construction Joint Ventures Revenue and Costs (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 72 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R73.htm </HtmlFileName> |
| | | <LongName> 9954510 - Disclosure - Investments in Affiliates (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesDetails </Role> |
| | | <ShortName> Investments in Affiliates (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesTables </ParentRole> |
| | | <Position> 73 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R74.htm </HtmlFileName> |
| | | <LongName> 9954511 - Disclosure - Investments in Affiliates - Equity Method Investments (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesEquityMethodInvestmentsDetails </Role> |
| | | <ShortName> Investments in Affiliates - Equity Method Investments (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 74 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R75.htm </HtmlFileName> |
| | | <LongName> 9954512 - Disclosure - Investments in Affiliates - Summarized Balance Sheet Information for Equity Method Investments (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesSummarizedBalanceSheetInformationforEquityMethodInvestmentsDetails </Role> |
| | | <ShortName> Investments in Affiliates - Summarized Balance Sheet Information for Equity Method Investments (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 75 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R76.htm </HtmlFileName> |
| | | <LongName> 9954513 - Disclosure - Investments in Affiliates - Summarized Statement of Operations for Equity Method Investments (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/InvestmentsinAffiliatesSummarizedStatementofOperationsforEquityMethodInvestmentsDetails </Role> |
| | | <ShortName> Investments in Affiliates - Summarized Statement of Operations for Equity Method Investments (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 76 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R77.htm </HtmlFileName> |
| | | <LongName> 9954514 - Disclosure - Property and Equipment, Net (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/PropertyandEquipmentNetDetails </Role> |
| | | <ShortName> Property and Equipment, Net (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/PropertyandEquipmentNetTables </ParentRole> |
| | | <Position> 77 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R78.htm </HtmlFileName> |
| | | <LongName> 9954515 - Disclosure - Property and Equipment, Net - Property, Plant, and Equipment (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/PropertyandEquipmentNetPropertyPlantandEquipmentDetails </Role> |
| | | <ShortName> Property and Equipment, Net - Property, Plant, and Equipment (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 78 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R79.htm </HtmlFileName> |
| | | <LongName> 9954516 - Disclosure - Property and Equipment, Net - Reconciliation of Asset Retirement Obligations (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/PropertyandEquipmentNetReconciliationofAssetRetirementObligationsDetails </Role> |
| | | <ShortName> Property and Equipment, Net - Reconciliation of Asset Retirement Obligations (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 79 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R80.htm </HtmlFileName> |
| | | <LongName> 9954517 - Disclosure - Intangible Assets (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IntangibleAssetsDetails </Role> |
| | | <ShortName> Intangible Assets (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/IntangibleAssetsTables </ParentRole> |
| | | <Position> 80 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R81.htm </HtmlFileName> |
| | | <LongName> 9954518 - Disclosure - Intangible Assets - Goodwill (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IntangibleAssetsGoodwillDetails </Role> |
| | | <ShortName> Intangible Assets - Goodwill (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 81 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R82.htm </HtmlFileName> |
| | | <LongName> 9954519 - Disclosure - Accrued Expenses and Other Current Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/AccruedExpensesandOtherCurrentLiabilitiesDetails </Role> |
| | | <ShortName> Accrued Expenses and Other Current Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/AccruedExpensesandOtherCurrentLiabilitiesTables </ParentRole> |
| | | <Position> 82 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R83.htm </HtmlFileName> |
| | | <LongName> 9954520 - Disclosure - Long-term Debt (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LongtermDebtDetails </Role> |
| | | <ShortName> Long-term Debt (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/LongtermDebtTables </ParentRole> |
| | | <Position> 83 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R84.htm </HtmlFileName> |
| | | <LongName> 9954521 - Disclosure - Long-term Debt - Schedule of Long-term Debt (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LongtermDebtScheduleofLongtermDebtDetails </Role> |
| | | <ShortName> Long-term Debt - Schedule of Long-term Debt (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 84 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R85.htm </HtmlFileName> |
| | | <LongName> 9954522 - Disclosure - Leases (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LeasesDetails </Role> |
| | | <ShortName> Leases (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/LeasesTables </ParentRole> |
| | | <Position> 85 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R86.htm </HtmlFileName> |
| | | <LongName> 9954523 - Disclosure - Leases - Schedule of Undiscounted Lease Liabilities Outstanding (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/LeasesScheduleofUndiscountedLeaseLiabilitiesOutstandingDetails </Role> |
| | | <ShortName> Leases - Schedule of Undiscounted Lease Liabilities Outstanding (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 86 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R87.htm </HtmlFileName> |
| | | <LongName> 9954524 - Disclosure - Employee Benefit Plans (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/EmployeeBenefitPlansDetails </Role> |
| | | <ShortName> Employee Benefit Plans (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/EmployeeBenefitPlansTables </ParentRole> |
| | | <Position> 87 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R88.htm </HtmlFileName> |
| | | <LongName> 9954525 - Disclosure - Employee Benefit Plans - Multi-employer Pension Plans (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/EmployeeBenefitPlansMultiemployerPensionPlansDetails </Role> |
| | | <ShortName> Employee Benefit Plans - Multi-employer Pension Plans (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 88 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R89.htm </HtmlFileName> |
| | | <LongName> 9954526 - Disclosure - Shareholders' Equity (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ShareholdersEquityDetails </Role> |
| | | <ShortName> Shareholders' Equity (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ShareholdersEquityTables </ParentRole> |
| | | <Position> 89 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R90.htm </HtmlFileName> |
| | | <LongName> 9954527 - Disclosure - Shareholders' Equity - Changes in RSUs (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ShareholdersEquityChangesinRSUsDetails </Role> |
| | | <ShortName> Shareholders' Equity - Changes in RSUs (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 90 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R91.htm </HtmlFileName> |
| | | <LongName> 9954528 - Disclosure - Weighted Average Shares Outstanding and Net Income Per Share (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShareDetails </Role> |
| | | <ShortName> Weighted Average Shares Outstanding and Net Income Per Share (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShareTables </ParentRole> |
| | | <Position> 91 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R92.htm </HtmlFileName> |
| | | <LongName> 9954529 - Disclosure - Weighted Average Shares Outstanding and Net Income Per Share - Reconciliation of the Weighted Average Shares (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/WeightedAverageSharesOutstandingandNetIncomePerShareReconciliationoftheWeightedAverageSharesDetails </Role> |
| | | <ShortName> Weighted Average Shares Outstanding and Net Income Per Share - Reconciliation of the Weighted Average Shares (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 92 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R93.htm </HtmlFileName> |
| | | <LongName> 9954530 - Disclosure - Income Taxes (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesDetails </Role> |
| | | <ShortName> Income Taxes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/IncomeTaxesTables </ParentRole> |
| | | <Position> 93 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R94.htm </HtmlFileName> |
| | | <LongName> 9954531 - Disclosure - Income Taxes - Summary of Income Before Provision for Income Taxes (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesSummaryofIncomeBeforeProvisionforIncomeTaxesDetails </Role> |
| | | <ShortName> Income Taxes - Summary of Income Before Provision for Income Taxes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 94 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R95.htm </HtmlFileName> |
| | | <LongName> 9954532 - Disclosure - Income Taxes - Provision for Income Taxes (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesProvisionforIncomeTaxesDetails </Role> |
| | | <ShortName> Income Taxes - Provision for Income Taxes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 95 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R96.htm </HtmlFileName> |
| | | <LongName> 9954533 - Disclosure - Income Taxes - Schedule of Effective Income Tax Rate Reconciliation (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesScheduleofEffectiveIncomeTaxRateReconciliationDetails </Role> |
| | | <ShortName> Income Taxes - Schedule of Effective Income Tax Rate Reconciliation (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 96 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R97.htm </HtmlFileName> |
| | | <LongName> 9954534 - Disclosure - Income Taxes - Deferred Tax Assets and Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesDeferredTaxAssetsandLiabilitiesDetails </Role> |
| | | <ShortName> Income Taxes - Deferred Tax Assets and Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 97 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R98.htm </HtmlFileName> |
| | | <LongName> 9954535 - Disclosure - Income Taxes - Net Operating Loss Carryforwards (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesNetOperatingLossCarryforwardsDetails </Role> |
| | | <ShortName> Income Taxes - Net Operating Loss Carryforwards (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 98 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R99.htm </HtmlFileName> |
| | | <LongName> 9954536 - Disclosure - Income Taxes - Change in Valuation Allowance (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesChangeinValuationAllowanceDetails </Role> |
| | | <ShortName> Income Taxes - Change in Valuation Allowance (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 99 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R100.htm </HtmlFileName> |
| | | <LongName> 9954537 - Disclosure - Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/IncomeTaxesReconciliationofUnrecognizedTaxBenefitsDetails </Role> |
| | | <ShortName> Income Taxes - Reconciliation of Unrecognized Tax Benefits (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 100 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R101.htm </HtmlFileName> |
| | | <LongName> 9954538 - Disclosure - Contingencies - Legal Proceedings (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ContingenciesLegalProceedingsDetails </Role> |
| | | <ShortName> Contingencies - Legal Proceedings (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ContingenciesLegalProceedings </ParentRole> |
| | | <Position> 101 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R102.htm </HtmlFileName> |
| | | <LongName> 9954539 - Disclosure - Reportable Segment Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformationDetails </Role> |
| | | <ShortName> Reportable Segment Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.graniteconstruction.com/role/ReportableSegmentInformationTables </ParentRole> |
| | | <Position> 102 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R103.htm </HtmlFileName> |
| | | <LongName> 9954540 - Disclosure - Reportable Segment Information - Segment Reporting Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformationSegmentReportingInformationDetails </Role> |
| | | <ShortName> Reportable Segment Information - Segment Reporting Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 103 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R104.htm </HtmlFileName> |
| | | <LongName> 9954541 - Disclosure - Reportable Segment Information - Reconciliation of Segment Gross (Loss) Profit to Consolidated Loss (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformationReconciliationofSegmentGrossLossProfittoConsolidatedLossDetails </Role> |
| | | <ShortName> Reportable Segment Information - Reconciliation of Segment Gross (Loss) Profit to Consolidated Loss (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 104 </Position> |
| | | </Report> |
| | <Report instance="gva-20231231.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R105.htm </HtmlFileName> |
| | | <LongName> 9954542 - Disclosure - Reportable Segment Information - Reconciliation of Segment Assets to Total Consolidated Assets (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.graniteconstruction.com/role/ReportableSegmentInformationReconciliationofSegmentAssetstoTotalConsolidatedAssetsDetails </Role> |
| | | <ShortName> Reportable Segment Information - Reconciliation of Segment Assets to Total Consolidated Assets (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 105 </Position> |
| | | </Report> |
| | <Report> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <LongName> All Reports </LongName> |
| | | <ReportType> Book </ReportType> |
| | | <ShortName> All Reports </ShortName> |
| | | </Report> |
| | </MyReports> |
| <InputFiles> |
| | <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="gva-20231231.htm"> gva-20231231.htm </File> |
| | <File> gva-20231231.xsd </File> |
| | <File> gva-20231231_cal.xml </File> |
| | <File> gva-20231231_def.xml </File> |
| | <File> gva-20231231_lab.xml </File> |
| | <File> gva-20231231_pre.xml </File> |
| | </InputFiles> |
| <SupplementalFiles> |
| | <File> gva-20231231_g1.jpg </File> |
| | <File> gva-20231231_g2.jpg </File> |
| | <File> gva-20231231_g3.jpg </File> |
| | </SupplementalFiles> |
| <BaseTaxonomies> |
| | <BaseTaxonomy items="1537"> http://fasb.org/us-gaap/2023 </BaseTaxonomy> |
| | <BaseTaxonomy items="39"> http://xbrl.sec.gov/dei/2023 </BaseTaxonomy> |
| | <BaseTaxonomy items="4"> http://xbrl.sec.gov/ecd/2023 </BaseTaxonomy> |
| | </BaseTaxonomies> |
| <HasPresentationLinkbase> true </HasPresentationLinkbase> |
| <HasCalculationLinkbase> true </HasCalculationLinkbase> |
| </FilingSummary> |