<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.23.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>274</ContextCount>
  <ElementCount>297</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>96</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>6</UnitCount>
  <MyReports>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Condensed Consolidated Statements of Operations (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-operations-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Operations (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Condensed Consolidated Statements of Comprehensive Income (Loss) (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-comprehensive-income-loss-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Comprehensive Income (Loss) (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-shareholders-equity-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-shareholders-equity-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Statements of Shareholders' Equity (Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 1 - General</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-1-general</Role>
      <ShortName>Note 1 - General</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 2 - Recently Issued and Adopted Accounting Pronouncements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-2-recently-issued-and-adopted-accounting-pronouncements</Role>
      <ShortName>Note 2 - Recently Issued and Adopted Accounting Pronouncements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 3 - Restatement and Recast</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast</Role>
      <ShortName>Note 3 - Restatement and Recast</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 4 - Revisions in Estimates</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates</Role>
      <ShortName>Note 4 - Revisions in Estimates</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 5 - Disaggregation of Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-5-disaggregation-of-revenue</Role>
      <ShortName>Note 5 - Disaggregation of Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 6 - Unearned Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-</Role>
      <ShortName>Note 6 - Unearned Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 7 - Contract Assets and Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-</Role>
      <ShortName>Note 7 - Contract Assets and Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 8 - Receivables, Net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net</Role>
      <ShortName>Note 8 - Receivables, Net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 9 - Fair Value Measurement</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement</Role>
      <ShortName>Note 9 - Fair Value Measurement</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 10 - Construction Joint Ventures</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures</Role>
      <ShortName>Note 10 - Construction Joint Ventures</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 11 - Investments in Affiliates</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates</Role>
      <ShortName>Note 11 - Investments in Affiliates</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 12 - Property and Equipment, Net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-12-property-and-equipment-net</Role>
      <ShortName>Note 12 - Property and Equipment, Net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 13 - Accrued Expenses and Other Current Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-13-accrued-expenses-and-other-current-liabilities</Role>
      <ShortName>Note 13 - Accrued Expenses and Other Current Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 14 - Long-term Debt and Credit Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements</Role>
      <ShortName>Note 14 - Long-term Debt and Credit Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share</Role>
      <ShortName>Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 16 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-16-income-taxes</Role>
      <ShortName>Note 16 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 17 - Contingencies - Legal Proceedings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-17-contingencies-legal-proceedings</Role>
      <ShortName>Note 17 - Contingencies - Legal Proceedings</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 18 - Reportable Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-18-reportable-segment-information</Role>
      <ShortName>Note 18 - Reportable Segment Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 3 - Restatement and Recast (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast-tables</Role>
      <ShortName>Note 3 - Restatement and Recast (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 4 - Revisions in Estimates (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates-tables</Role>
      <ShortName>Note 4 - Revisions in Estimates (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 5 - Disaggregation of Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-5-disaggregation-of-revenue-tables</Role>
      <ShortName>Note 5 - Disaggregation of Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-5-disaggregation-of-revenue</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 6 - Unearned Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-tables</Role>
      <ShortName>Note 6 - Unearned Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 7 - Contract Assets and Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-tables</Role>
      <ShortName>Note 7 - Contract Assets and Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 8 - Receivables, Net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net-tables</Role>
      <ShortName>Note 8 - Receivables, Net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 9 - Fair Value Measurement (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-tables</Role>
      <ShortName>Note 9 - Fair Value Measurement (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 10 - Construction Joint Ventures (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures-tables</Role>
      <ShortName>Note 10 - Construction Joint Ventures (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 11 - Investments in Affiliates (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates-tables</Role>
      <ShortName>Note 11 - Investments in Affiliates (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 12 - Property and Equipment, Net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-12-property-and-equipment-net-tables</Role>
      <ShortName>Note 12 - Property and Equipment, Net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-12-property-and-equipment-net</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 13 - Accrued Expenses and Other Current Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-13-accrued-expenses-and-other-current-liabilities-tables</Role>
      <ShortName>Note 13 - Accrued Expenses and Other Current Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-13-accrued-expenses-and-other-current-liabilities</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 14 - Long-term Debt and Credit Arrangements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements-tables</Role>
      <ShortName>Note 14 - Long-term Debt and Credit Arrangements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share-tables</Role>
      <ShortName>Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 16 - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-16-income-taxes-tables</Role>
      <ShortName>Note 16 - Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-16-income-taxes</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 18 - Reportable Segment Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-18-reportable-segment-information-tables</Role>
      <ShortName>Note 18 - Reportable Segment Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-18-reportable-segment-information</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 1 - General (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-1-general-details-textual</Role>
      <ShortName>Note 1 - General (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-1-general</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 3 - Restatement and Recast (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast-details-textual</Role>
      <ShortName>Note 3 - Restatement and Recast (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast-tables</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 3 - Restatement and Recast - Schedule of Condensed Consolidated Financial Statements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-3-restatement-and-recast-schedule-of-condensed-consolidated-financial-statements-details</Role>
      <ShortName>Note 3 - Restatement and Recast - Schedule of Condensed Consolidated Financial Statements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 4 - Revisions in Estimates (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates-details-textual</Role>
      <ShortName>Note 4 - Revisions in Estimates (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates-tables</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 4 - Revisions in Estimates - Summary of Impact of Revisions in Estimates to Gross Profit (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-4-revisions-in-estimates-summary-of-impact-of-revisions-in-estimates-to-gross-profit-details</Role>
      <ShortName>Note 4 - Revisions in Estimates - Summary of Impact of Revisions in Estimates to Gross Profit (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 5 - Disaggregation of Revenue - Schedule of Disaggregation of Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-5-disaggregation-of-revenue-schedule-of-disaggregation-of-revenue-details</Role>
      <ShortName>Note 5 - Disaggregation of Revenue - Schedule of Disaggregation of Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 6 - Unearned Revenue (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-details-textual</Role>
      <ShortName>Note 6 - Unearned Revenue (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-tables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 6 - Unearned Revenue - Schedule of Unearned Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-6-unearned-revenue-schedule-of-unearned-revenue-details</Role>
      <ShortName>Note 6 - Unearned Revenue - Schedule of Unearned Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 7 - Contract Assets and Liabilities (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-details-textual</Role>
      <ShortName>Note 7 - Contract Assets and Liabilities (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-tables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 7 - Contract Assets and Liabilities - Component of Contract Asset and Liability Balances (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-7-contract-assets-and-liabilities-component-of-contract-asset-and-liability-balances-details</Role>
      <ShortName>Note 7 - Contract Assets and Liabilities - Component of Contract Asset and Liability Balances (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 8 - Receivables, Net (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net-details-textual</Role>
      <ShortName>Note 8 - Receivables, Net (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net-tables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 8 - Receivables, Net - Schedule of Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-8-receivables-net-schedule-of-receivables-details</Role>
      <ShortName>Note 8 - Receivables, Net - Schedule of Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 9 - Fair Value Measurement (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-details-textual</Role>
      <ShortName>Note 9 - Fair Value Measurement (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-tables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 9 - Fair Value Measurement - Cash and Cash Equivalents (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-cash-and-cash-equivalents-details</Role>
      <ShortName>Note 9 - Fair Value Measurement - Cash and Cash Equivalents (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 9 - Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-schedule-of-carrying-and-fair-value-amounts-details</Role>
      <ShortName>Note 9 - Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 9 - Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-9-fair-value-measurement-schedule-of-carrying-and-fair-value-amounts-details-parentheticals</Role>
      <ShortName>Note 9 - Fair Value Measurement - Schedule of Carrying and Fair Value Amounts (Details) (Parentheticals)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 10 - Construction Joint Ventures (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures-details-textual</Role>
      <ShortName>Note 10 - Construction Joint Ventures (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures-tables</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 10 - Construction Joint Ventures - Unconsolidated Construction Joint Ventures Financial Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures-unconsolidated-construction-joint-ventures-financial-information-details</Role>
      <ShortName>Note 10 - Construction Joint Ventures - Unconsolidated Construction Joint Ventures Financial Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>060 - Disclosure - Note 10 - Construction Joint Ventures - Schedule of Unconsolidated Construction Joint Ventures Revenue and Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-10-construction-joint-ventures-schedule-of-unconsolidated-construction-joint-ventures-revenue-and-costs-details</Role>
      <ShortName>Note 10 - Construction Joint Ventures - Schedule of Unconsolidated Construction Joint Ventures Revenue and Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>061 - Disclosure - Note 11 - Investments in Affiliates (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates-details-textual</Role>
      <ShortName>Note 11 - Investments in Affiliates (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates-tables</ParentRole>
      <Position>62</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>062 - Disclosure - Note 11 - Investments in Affiliates - Equity Method Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates-equity-method-investments-details</Role>
      <ShortName>Note 11 - Investments in Affiliates - Equity Method Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>063 - Disclosure - Note 11 - Investments in Affiliates - Summarized Balance Sheet Information for Equity Method Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-11-investments-in-affiliates-summarized-balance-sheet-information-for-equity-method-investments-details</Role>
      <ShortName>Note 11 - Investments in Affiliates - Summarized Balance Sheet Information for Equity Method Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>064 - Disclosure - Note 12 - Property and Equipment, Net - Property, Plant, and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-12-property-and-equipment-net-property-plant-and-equipment-details</Role>
      <ShortName>Note 12 - Property and Equipment, Net - Property, Plant, and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>065 - Disclosure - Note 13 - Accrued Expenses and Other Current Liabilities - Accrued Expenses and Other Current Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-13-accrued-expenses-and-other-current-liabilities-accrued-expenses-and-other-current-liabilities-details</Role>
      <ShortName>Note 13 - Accrued Expenses and Other Current Liabilities - Accrued Expenses and Other Current Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>066 - Disclosure - Note 14 - Long-term Debt and Credit Arrangements (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements-details-textual</Role>
      <ShortName>Note 14 - Long-term Debt and Credit Arrangements (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements-tables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>067 - Disclosure - Note 14 - Long-term Debt and Credit Arrangements - Schedule of Long-term Debt and Credit Agreement (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements-schedule-of-longterm-debt-and-credit-agreement-details</Role>
      <ShortName>Note 14 - Long-term Debt and Credit Arrangements - Schedule of Long-term Debt and Credit Agreement (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>068 - Disclosure - Note 14 - Long-term Debt and Credit Arrangements - Schedule of Long-term Debt and Credit Agreement (Details) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-14-longterm-debt-and-credit-arrangements-schedule-of-longterm-debt-and-credit-agreement-details-parentheticals</Role>
      <ShortName>Note 14 - Long-term Debt and Credit Arrangements - Schedule of Long-term Debt and Credit Agreement (Details) (Parentheticals)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>069 - Disclosure - Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share-details-textual</Role>
      <ShortName>Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share-tables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>070 - Disclosure - Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share - Reconciliation of the Weighted Average Shares (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-15-weighted-average-shares-outstanding-and-net-loss-per-share-reconciliation-of-the-weighted-average-shares-details</Role>
      <ShortName>Note 15 - Weighted Average Shares Outstanding and Net Loss Per Share - Reconciliation of the Weighted Average Shares (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>071 - Disclosure - Note 16 - Income Taxes - Schedule of (Benefit from) Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-16-income-taxes-schedule-of-benefit-from-provision-for-income-taxes-details</Role>
      <ShortName>Note 16 - Income Taxes - Schedule of (Benefit from) Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>072 - Disclosure - Note 17 - Contingencies - Legal Proceedings (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-17-contingencies-legal-proceedings-details-textual</Role>
      <ShortName>Note 17 - Contingencies - Legal Proceedings (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.graniteconstruction.com/20230331/role/statement-note-17-contingencies-legal-proceedings</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>073 - Disclosure - Note 18 - Reportable Segment Information - Segment Reporting Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-18-reportable-segment-information-segment-reporting-information-details</Role>
      <ShortName>Note 18 - Reportable Segment Information - Segment Reporting Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="gva20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>074 - Disclosure - Note 18 - Reportable Segment Information - Reconciliation of Segment Gross (Loss) Profit to Consolidated Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.graniteconstruction.com/20230331/role/statement-note-18-reportable-segment-information-reconciliation-of-segment-gross-loss-profit-to-consolidated-loss-details</Role>
      <ShortName>Note 18 - Reportable Segment Information - Reconciliation of Segment Gross (Loss) Profit to Consolidated Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 64 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, gva:AccruedExpensesAndOtherCurrentLiabilities, gva:IncreasesDecreaseFromRevisionsInAccountingEstimates, gva:NumberOfActiveJointVentureProjects, gva:NumberOfEntities, us-gaap:AccountsPayableCurrent, us-gaap:AmortizationOfDebtDiscountPremium, us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount, us-gaap:Assets, us-gaap:CashAndCashEquivalentsAtCarryingValue, us-gaap:CommonStockDividendsPerShareDeclared, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:ContractWithCustomerAssetNet, us-gaap:ContractWithCustomerLiabilityCurrent, us-gaap:ConvertibleDebtFairValueDisclosures, us-gaap:DebtInstrumentInterestRateStatedPercentage, us-gaap:DebtInstrumentTerm, us-gaap:GrossProfit, us-gaap:HeldToMaturitySecuritiesFairValue, us-gaap:LineOfCredit, us-gaap:PreferredStockParOrStatedValuePerShare, us-gaap:PreferredStockSharesAuthorized, us-gaap:PreferredStockSharesOutstanding, us-gaap:PropertyPlantAndEquipmentGross, us-gaap:PropertyPlantAndEquipmentNet, us-gaap:ReceivablesNetCurrent, us-gaap:RestrictedCash, us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 -  gva20230331_10q.htm 8, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-Q" original="gva20230331_10q.htm">gva20230331_10q.htm</File>
    <File>ex_481972.htm</File>
    <File>ex_481973.htm</File>
    <File>ex_481974.htm</File>
    <File>ex_481975.htm</File>
    <File>gva-20230331.xsd</File>
    <File>gva-20230331_cal.xml</File>
    <File>gva-20230331_def.xml</File>
    <File>gva-20230331_lab.xml</File>
    <File>gva-20230331_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>logo01.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="958">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="29">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
