| r0.c0 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Additions to intangible assets by segment | rj-i:SegmentReportingAcquisitionsIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c1 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Additions to property, plant and equipment by segment | rj-i:SegmentReportingAcquisitionsPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c2 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Amortisation of intangible assets by segment | rj-i:SegmentReportingAmortisationIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c3 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Assets by segment | rj-i:SegmentReportingAssets | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c4 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Depreciation of property, plant and equipment by segment | rj-i:SegmentReportingDepreciationPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c5 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Impairment of intangible assets by segment | rj-i:SegmentReportingImpairmentIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c6 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Impairment of property, plant and equipment by segment | rj-i:SegmentReportingImpairmentPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c7 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Provisions by segment | rj-i:SegmentReportingProvisions | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c8 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Liabilities by segment | rj-i:SegmentReportingLiabilities | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c9 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income from other segments | rj-i:SegmentReportingIncomeAttributableIntercompanySegmentsOther | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c10 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income from third parties | rj-i:SegmentReportingIncomeAttributableThirdParties | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c11 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income | rj-i:SegmentReportingIncome | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c12 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Result for the year by segment | rj-i:SegmentReportingResultForTheYear | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c13 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Presentation order | nl-cd:PresentationOrder | nl-types:nonNegativeDecimal20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c14 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Additions to intangible assets by segment | rj-i:SegmentReportingAcquisitionsIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c15 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Additions to property, plant and equipment by segment | rj-i:SegmentReportingAcquisitionsPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c16 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Amortisation of intangible assets by segment | rj-i:SegmentReportingAmortisationIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c17 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Assets by segment | rj-i:SegmentReportingAssets | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c18 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Depreciation of property, plant and equipment by segment | rj-i:SegmentReportingDepreciationPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c19 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Impairment of intangible assets by segment | rj-i:SegmentReportingImpairmentIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c20 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Impairment of property, plant and equipment by segment | rj-i:SegmentReportingImpairmentPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c21 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Provisions by segment | rj-i:SegmentReportingProvisions | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c22 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Liabilities by segment | rj-i:SegmentReportingLiabilities | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c23 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income from other segments | rj-i:SegmentReportingIncomeAttributableIntercompanySegmentsOther | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c24 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income from third parties | rj-i:SegmentReportingIncomeAttributableThirdParties | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c25 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Segment information, income | rj-i:SegmentReportingIncome | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r0.c26 | kvk-table_2PeriodesTypeJaarrekening1DynamischeAs5AbstractsDIDIDExtraTotaalRijDurationPOrder_NotesSegmentReportingSpecificationByGeographyPensionFundsTable-y/Result for the year by segment | rj-i:SegmentReportingResultForTheYear | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c0 | Total/Additions to intangible assets by segment | rj-i:SegmentReportingAcquisitionsIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c1 | Total/Additions to property, plant and equipment by segment | rj-i:SegmentReportingAcquisitionsPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c2 | Total/Amortisation of intangible assets by segment | rj-i:SegmentReportingAmortisationIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c3 | Total/Assets by segment | rj-i:SegmentReportingAssets | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c4 | Total/Depreciation of property, plant and equipment by segment | rj-i:SegmentReportingDepreciationPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c5 | Total/Impairment of intangible assets by segment | rj-i:SegmentReportingImpairmentIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c6 | Total/Impairment of property, plant and equipment by segment | rj-i:SegmentReportingImpairmentPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c7 | Total/Provisions by segment | rj-i:SegmentReportingProvisions | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c8 | Total/Liabilities by segment | rj-i:SegmentReportingLiabilities | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c9 | Total/Segment information, income from other segments | rj-i:SegmentReportingIncomeAttributableIntercompanySegmentsOther | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c10 | Total/Segment information, income from third parties | rj-i:SegmentReportingIncomeAttributableThirdParties | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c11 | Total/Segment information, income | rj-i:SegmentReportingIncome | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c12 | Total/Result for the year by segment | rj-i:SegmentReportingResultForTheYear | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c13 | Total/Presentation order | nl-cd:PresentationOrder | nl-types:nonNegativeDecimal20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c14 | Total/Additions to intangible assets by segment | rj-i:SegmentReportingAcquisitionsIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c15 | Total/Additions to property, plant and equipment by segment | rj-i:SegmentReportingAcquisitionsPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c16 | Total/Amortisation of intangible assets by segment | rj-i:SegmentReportingAmortisationIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c17 | Total/Assets by segment | rj-i:SegmentReportingAssets | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c18 | Total/Depreciation of property, plant and equipment by segment | rj-i:SegmentReportingDepreciationPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c19 | Total/Impairment of intangible assets by segment | rj-i:SegmentReportingImpairmentIntangibleAssets | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c20 | Total/Impairment of property, plant and equipment by segment | rj-i:SegmentReportingImpairmentPropertyPlantEquipment | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c21 | Total/Provisions by segment | rj-i:SegmentReportingProvisions | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c22 | Total/Liabilities by segment | rj-i:SegmentReportingLiabilities | nl-types:monetaryNoDecimals20ItemType | instant | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c23 | Total/Segment information, income from other segments | rj-i:SegmentReportingIncomeAttributableIntercompanySegmentsOther | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c24 | Total/Segment information, income from third parties | rj-i:SegmentReportingIncomeAttributableThirdParties | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c25 | Total/Segment information, income | rj-i:SegmentReportingIncome | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |
| r1.c26 | Total/Result for the year by segment | rj-i:SegmentReportingResultForTheYear | nl-types:monetaryNoDecimals20ItemType | duration | $BasisOfPreparationParam | jenv-bw2-dm:SeparateMember | * |